黑马程序员技术交流社区
标题:
自己练习写的线程出问题了
[打印本页]
作者:
coqns
时间:
2012-12-9 15:13
标题:
自己练习写的线程出问题了
本帖最后由 coqns 于 2012-12-9 20:59 编辑
以前看视屏学习也就是边看边跟着打代码的练过一遍,今天开始想自己回忆练习着打一次,结果自己一打就出问题了,最基础的通过继承Thread类来实现多线程,写完后程序是正常运行,但是结果一看居然是单线程(线程一执行完了才执行线程二,根本不是交互执行)。。。。代码如下
public class Demo {
public static void main(String[] args){
ThreadDemo t1=new ThreadDemo();
ThreadDemo t2=new ThreadDemo();
t1.start();
t2.start();
for(int i=0;i<60;i++){
System.out.println("Thread-main="+i);
}
}
}
class ThreadDemo extends Thread{
public void run(){
for(int i=0;i<60;i++){
System.out.println(Thread.currentThread().getName()+"="+i);
}
}
}
复制代码
作者:
刘文飞
时间:
2012-12-9 15:40
public class Demo {
public static void main(String[] args){
ThreadDemo t1=new ThreadDemo();
ThreadDemo t2=new ThreadDemo();
t1.start();
t2.start();
int i = 0;
while(true){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Thread-main="+ i++);
}
}
}
class ThreadDemo extends Thread{
int i = 0;
public void run(){
while(true){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"="+i++);
}
}
}
复制代码
是交互的,建议把循环次数弄大点,或者让线程睡会,就有明显效果了.
次数太小,都是双核cpu且性能不错,所以会导致一个线程执行完了,下一个才抢到cpu执行权.
作者:
coqns
时间:
2012-12-9 20:58
刘文飞 发表于 2012-12-9 15:40
是交互的,建议把循环次数弄大点,或者让线程睡会,就有明显效果了.
次数太小,都是双核cpu且性能不错,所以会导 ...
我还纠结代码呢,没想到居然是因为电脑配置问题,我把循环增大到1000就好了。。。。谢谢你的解答
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2