public class Demo01 implements Runnable {

private int ticket = 10;

@Override

public void run() {

for (int i = 0; i < 10; i++) {

synchronized (this) {

if (ticket > 0) {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName()

+ ",正在卖出第" + (this.ticket--) + "张票!");

		}
}
}

}

public static void main(String[] args) {

Demo01 mt = new Demo01();

new Thread(mt, "售票员A").start();

new Thread(mt, "售票员B").start();

new Thread(mt, "售票员C").start();

}

最新文章

  1. PowerBuilder -- 字符
  2. Python练习,网络小爬虫(初级)
  3. div css 自适应
  4. C# 通过代理获取url数据
  5. [转]AngularJS fixed header scrollable table directive
  6. JavaWeb开发必过关-Servlet学习(一)
  7. FZU 1649 Prime number or not米勒拉宾大素数判定方法。
  8. Codeforces Round #257 (Div. 1) (Codeforces 449D)
  9. .NET Framework 4.5 五个很棒的特性
  10. BZOJ3122 随机数生成器
  11. ecshop支持手机号码登录、邮箱登录
  12. mac下识别国产android手机
  13. 算法打基础——HashⅡ: 全域哈希与完美哈希
  14. 多AG自动生成apk说明
  15. SpringBoot 之静态资源
  16. Python小项目四:实现简单的web服务器
  17. Servlet向JSP过渡
  18. python测试开发django-13.操作数据库(增删改查)
  19. FreePascal - Typhon在Windows10 X64下的使用问题!
  20. python模块之lib2to3(py2转py3自动化工具)

热门文章

  1. devc++编译时 undefined reference to `__imp_WSAStartup&#39;
  2. sql中count(1)、count(*)与count(列名)的区别
  3. PyQt+moviepy音视频剪辑实战1:多视频合成顺序播放或同屏播放的视频文件
  4. 转:Http协议中Cookie详细介绍
  5. PyQt(Python+Qt)学习随笔:布局控件layoutStretch属性
  6. 跨国合作:Serverless Components 在腾讯云的落地和实践
  7. Redis Sentinel-深入浅出原理和实战
  8. js滑动到页面底部实现
  9. Java集合源码分析(七)——TreeMap
  10. JAVA字符配置替换方案