黑马程序员技术交流社区
标题:
为什么我运行多线程代码的时候,电脑会死机呢
[打印本页]
作者:
Piaoyu
时间:
2015-1-13 10:05
标题:
为什么我运行多线程代码的时候,电脑会死机呢
package MyThread;
public class ThreadOne {
public static void main(String[] args) {
Res r = new Res();
Producer p = new Producer(r);
Consumer c = new Consumer(r);
Thread t1 = new Thread(p);
Thread t2 = new Thread(p);
Thread t3 = new Thread(c);
Thread t4 = new Thread(c);
Thread t5 = new Thread(c);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class Res{
private String name;
private int id;
private boolean flag = false;
public synchronized void Pro(String name){
while(flag)
{
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.name = name+":"+id++;
System.out.println(Thread.currentThread().getName()+"-------我是生产者-------"+this.name);
flag = true;
this.notifyAll();
}
public synchronized void Con(){
while(!flag)
{
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+"..我是消费者..."+name);
flag = false;
this.notifyAll();
}
}
class Producer implements Runnable
{
Res r;
Producer(Res r){
this.r = r;
}
@Override
public void run() {
while(true){
r.Pro("+商品");
}
}
}
class Consumer implements Runnable{
Res r;
Consumer(Res r){
this.r = r;
}
@Override
public void run() {
while(true){
r.Con();
}
}
}
复制代码
这是代码,在eclipse上运行就会死机,用cmd编译并运行就没事,这是为什么呢?
作者:
446111220
时间:
2015-1-13 10:34
卡死了吧
作者:
Piaoyu
时间:
2015-1-13 10:37
446111220 发表于 2015-1-13 10:34
卡死了吧
不懂,运行其他程序都没事,一运行多线程就卡死
作者:
446111220
时间:
2015-1-13 11:41
这个我也不是很清楚啊
作者:
kerner
时间:
2015-1-13 13:03
试着执行其它程序,如果也死机,可能eclipse还有其它程序在执行,你还没有关闭完全。
作者:
云兮丶
时间:
2015-1-13 13:04
看了下,代码没问题,可能是你电脑的cpu不行吧,eclipse很耗费资源的,可以去百度下eclipse优化,把那些自动拼写之类的都去掉。
作者:
任我行_2014
时间:
2015-1-14 00:36
主要是电脑Cpu问题,我i5的也是一运行多线程就卡死,cpu使用率98%
作者:
廖彬
时间:
2015-1-14 07:03
内存满了 跑不动了
作者:
小川行
时间:
2015-1-14 08:39
哈哈!学习学习!
作者:
以利亚
时间:
2015-1-14 09:00
电脑不行了吧!
作者:
chudaming213
时间:
2015-1-14 09:10
你这里有死循环啊!!整的太过分电脑表示受不了了!!
作者:
outsider1020
时间:
2015-1-16 09:57
eclipse有时是会这样的。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2