2、使用方法同步

package com.lfy.ThreadsSynchronize;

/**
* 1、使用同步方法
* 语法:即用 synchronized 关键字修饰方法(注意是在1个对象中用锁还是多个对象之间用锁,1个对象级用锁,只能是同一个对象,多个对象之间用锁,只能使用类锁,方法还需要添加static修饰) 注意:不能直接用 synchronized 来修饰 run() 方法,因为如果这样做,那么就会总是第一个线程进入其中,而这个线程执行完所有操作,即卖完所有票了才会出来。
*/
public class TicketSellSolution2 extends Thread{ private static int num = 50; public TicketSellSolution2(String string) {
super(string);
} @Override
public void run() {
for(int i = 0 ; i < 50 ;i ++){
sell();
}
}

/**
       * 类锁,在对象之间同样生效
       */

private synchronized static void sell() {
if(num > 0){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"卖出一张票,剩余"+(--num)+"张");
}
}
}

最新文章

  1. c#winform程序,修改MessageBox提示框中按钮的文本
  2. @MappedSuperclass注解的使用说明
  3. Android 环境配置
  4. C# WebClient 实现上传下载网络资源
  5. paypal api 相关资料
  6. CT值及CT常用窗宽、窗位 [转]
  7. 图片onerror(转)
  8. java web 优化札记
  9. iOS 神秘而又强大的传感器系统 (附demo)
  10. oracle 常用sql字符函数介绍
  11. Powershell-获取命令和帮助
  12. mysql:mysql is neither service nor target!?(suse12 sp2 )
  13. 怎么打开在.bashrc文件以及设置颜色
  14. python(三)@staticmethod和@classmethod使用和区别
  15. springboot整合JSP以及发布项目到独立的tomcat中与打成jar包使用
  16. HTTP(搁置)
  17. mybatis in查询 传入string
  18. 4J - 前m大的数
  19. 数据库导入.bacpac 文件创建新实例
  20. [leetcode]115. Distinct Subsequences 计算不同子序列个数

热门文章

  1. [Jenkins]执行SoapUI脚本,怎样在邮件内容里面嵌入html
  2. PHPCMS V9 模块开发 二次开发实例 留言本
  3. android,gridview
  4. thinkphp+redis+队列
  5. Jdom简单的修改xml文件实现
  6. parseInt(string, radix)
  7. ZOJ1648 Circuit Board 2017-04-18 20:31 34人阅读 评论(0) 收藏
  8. MySQL—练习2
  9. 12、Docker的网络--bridge
  10. Android-工作总结-LX-2018-08-20-setHint