题目要求,主线程循环100次,子线程循环10次,再主线程循环100次,子线程循环10次,循环50次
开始的设计思想就是两边互相监听,由主线程开始进行100次,然后子线程监听到进行子线程的一个流程!虽然是个实例但是占用了相当大的系统资源,是一个不可取的思想。今天也感觉到自己距离还差好远呀继续努力。而且在写的时候也犯了很致命的错误,JAVA的基础功底需要加强了
public class ThreadTest {
//全局变量设计(为了实现功能的设计...影响效率的一方面)
static int i=0;
static int j=0;
static int k=0;
public static void main(String[] args) {
//线程方法
new Thread(new Runnable() {
public void run() {
//线程启动时,i=0,此时此方法启动,进行100次循环
while(i%10==0){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
j++;
System.out.println("子j"+j+"父i"+i);
}
}
}).start();
new Thread(new Runnable() {
public void run() {
while(true){
try {
Thread.sleep(40);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//j!=0时放在在初始时就被开启,当j到100时启动
while(j%100==0&&j!=0){
i++;
System.out.println("父i"+i+"子j"+j);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}).start();
}
}
但是这样运行并没有达到我的预想,因为会打出这样的情况父i1子j100当i=1的时候也进入了第一个线程,打出子j101父i1这样我就很不理解这到底发生了什么?求高手指点开来。
分享到:
相关推荐
"面试中多线程问题" 多线程是 Java 编程中一个重要的概念,掌握多线程可以帮助开发者更好地编写高效、稳定的程序。以下是面试中常见的多线程问题和解释: 1. 实现多线程的几种方法? Java 中有两种方式可以实现多...
标题中的“vb.bet多线程问题”指出讨论的核心是关于VB.NET编程语言中的多线程技术。在.NET框架中,多线程是程序设计的一个重要方面,它允许应用程序同时执行多个任务,提高效率和响应性。VB.NET作为.NET框架的一部分...
Java多线程问题总结 Java多线程是Java编程中不可或缺的一部分,特别是在现代计算机系统中,多核CPU的广泛使用使得多线程成为提高程序性能的关键。本文将深入探讨Java多线程的几个核心概念和应用场景。 首先,利用...
【Delphi多线程问题详解】 在Delphi编程中,多线程技术是提升应用程序性能的关键,尤其是在现代多核处理器的环境下。多线程允许程序同时执行多个任务,从而充分利用计算资源。然而,多线程的使用也伴随着一系列挑战...
C#多线程问题2-简单案例-i++经典案例 C#多线程问题2-简单案例-i++经典案例是C#编程语言中多线程编程的经典案例,它展示了多线程资源共享问题的典型解决方案。本案例中,我们将学习如何使用C#语言来解决多线程问题,...
MFC支持多线程编程,本文将深入探讨MFC中的多线程问题。 首先,MFC中的多线程主要分为两种:工作线程(Worker Thread)和用户界面线程(User Interface Thread)。工作线程主要用于后台任务处理,而用户界面线程则...
标题中的“1工作临时-servlet 多线程问题”表明我们即将探讨的是在实际工作中遇到的一个与Servlet和多线程相关的技术难题。Servlet是Java Web开发中用于处理HTTP请求的服务端组件,而多线程则涉及到并发编程,是...
C++多线程常见问题汇总,快来学习吧~~~~~~~~~~~~~~~~~~~~~~~~
3. **线程同步和通信**:多线程环境下,线程间可能会存在优先级问题和资源竞争。Windows提供了多种同步机制,如临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)和事件对象(Event)。这些机制...
理解这些状态以及它们之间的转换是分析多线程问题的关键。 4. **同步机制**:Java提供了多种同步机制,包括synchronized关键字、Lock接口(如ReentrantLock)以及volatile关键字。synchronized用于控制对共享资源的...
在描述中提到了“线程稳定”,这意味着该代码设计考虑了线程间的同步和通信,避免了竞态条件、死锁等多线程问题,确保了程序的稳定运行。同时,“可突破服务器限速”意味着可能采用了某种策略,如设置合适的下载速度...
例如,调试工具可以帮助开发者定位多线程问题,如死锁、竞态条件等。版本控制系统(如Git)用于代码的版本管理和团队协作。构建工具(如Maven或Gradle)可以自动化编译、打包和部署过程,提高开发效率。而性能分析...
在软件开发过程中,测试是确保代码质量和功能正确性的重要环节。...同时,这个库也体现了在复杂并发场景下,测试工具和策略的重要性,它可以帮助开发者更好地理解和调试多线程问题,提升整体的软件质量。
#### 四、常见多线程问题及解决方法 1. **竞态条件**:当两个或更多的线程共享数据,并且这些线程都试图修改这个数据时,如果没有正确的同步机制,可能会导致竞态条件。 - **解决方法**:使用互斥锁、信号量等同步...
描述中的重复文本“XP多线程补丁”强调了这个补丁的重点,可能是为了突出其重要性或者提醒用户该补丁是专门针对Windows XP的多线程问题而设计的。由于Windows XP已停止官方支持,这样的第三方补丁可能来自社区开发者...
**五、多线程问题与解决方案** 1. **死锁**:多个线程相互等待对方释放资源,导致所有线程都无法继续。解决方法包括避免嵌套锁、设置锁超时、死锁检测和恢复等。 2. **竞态条件**:当多个线程同时修改共享数据时...
通过分析这些代码,我们可以深入理解易语言中如何创建、管理和控制线程,以及如何避免常见的多线程问题。这对于我们学习和提升易语言多线程编程能力大有裨益。 总之,易语言简单多线程写法源码是学习多线程编程的一...