| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1586 人关注过本帖
标题:启动了四个线程,为什么只执行了一个
取消只看楼主 加入收藏
看谁都是你
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-10-13
结帖率:57.14%
收藏
已结贴  问题点数:5 回复次数:1 
启动了四个线程,为什么只执行了一个
运行结果只有携程卖票,其他的线程却不卖,请问是为什么


class MyRunnable implements Runnable{
    private Integer ticketscount=1000;
    @Override
    public void run() {
        synchronized(this){
            while(ticketscount>0){
                System.out.println(Thread.currentThread().getName()+"卖出了一张票,还剩"+--ticketscount+"张票");
            }
        }
        
    }
   
}
public class TicketsRunnable{
    public static void main(String [] args){
        MyRunnable mr=new MyRunnable();
        Thread th1=new Thread(mr,"携程");
        Thread th2=new Thread(mr,"途牛");
        Thread th3=new Thread(mr,"12306");
        Thread th4=new Thread(mr,"手机客户端");
        th1.start();
        th2.start();
        th3.start();
        th4.start();        
    }
}
搜索更多相关主题的帖子: 启动 线程 Thread new start 
2017-10-13 19:53
看谁都是你
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-10-13
收藏
得分:0 
回复 2楼 嗨呀你是谁
那不使用同步的话,卖票数量就不按顺序来了怎么办
某次执行结果:
程序代码:
携程卖出了一张票,还剩9张票
12306卖出了一张票,还剩7张票
手机客户端卖出了一张票,还剩8张票
途牛卖出了一张票,还剩9张票
手机客户端卖出了一张票,还剩4张票
手机客户端卖出了一张票,还剩2张票
手机客户端卖出了一张票,还剩1张票
手机客户端卖出了一张票,还剩0张票
途牛卖出了一张票,还剩3张票
12306卖出了一张票,还剩5张票
携程卖出了一张票,还剩6张票
2017-10-13 20:20
快速回复:启动了四个线程,为什么只执行了一个
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017371 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved