黑马程序员技术交流社区
标题:
关于多线程的问题
[打印本页]
作者:
g552092947
时间:
2015-7-2 11:35
标题:
关于多线程的问题
为什么这段程序执行后CPU的占用率就特别高呢 到90%多
package com.heima.thread;
/**
* 需求:简单的卖票程序,模拟4个线程同时卖100张票。多窗口同时卖票
* @author Administrator
*
*/
class Ticket extends Thread{
private int ticket=100;
public void run()
{
while(true)
{
if(ticket>0)
{
System.out.println(this.getName()+"…………"+ticket--);
}
}
}
}
public class ThreadTicket {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Ticket t1=new Ticket();
Ticket t2=new Ticket();
Ticket t3=new Ticket();
Ticket t4=new Ticket();
t1.start();
t2.start();
t3.start();
t4.start();
}
}
复制代码
作者:
懒锋2015
时间:
2015-7-2 11:51
呃,你的while循环判断条件有问题,程序不会停止。就算卖了100张票,程序还是会一直循环判断,虽然不再输出了。你把循环判断条件改成卖到100张票就停止就好了
作者:
懒锋2015
时间:
2015-7-2 11:53
另外,多窗口同时卖票是要考虑多线程安全问题的,你的程序这样写会出现一张票被卖出多于一次的情况
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2