编程开发之--java多线程学习总结(3)类锁
2024-09-02 00:47:22
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)+"张");
}
}
}
最新文章
- c#winform程序,修改MessageBox提示框中按钮的文本
- @MappedSuperclass注解的使用说明
- Android 环境配置
- C# WebClient 实现上传下载网络资源
- paypal api 相关资料
- CT值及CT常用窗宽、窗位 [转]
- 图片onerror(转)
- java web 优化札记
- iOS 神秘而又强大的传感器系统 (附demo)
- oracle 常用sql字符函数介绍
- Powershell-获取命令和帮助
- mysql:mysql is neither service nor target!?(suse12 sp2 )
- 怎么打开在.bashrc文件以及设置颜色
- python(三)@staticmethod和@classmethod使用和区别
- springboot整合JSP以及发布项目到独立的tomcat中与打成jar包使用
- HTTP(搁置)
- mybatis in查询 传入string
- 4J - 前m大的数
- 数据库导入.bacpac 文件创建新实例
- [leetcode]115. Distinct Subsequences 计算不同子序列个数
热门文章
- [Jenkins]执行SoapUI脚本,怎样在邮件内容里面嵌入html
- PHPCMS V9 模块开发 二次开发实例 留言本
- android,gridview
- thinkphp+redis+队列
- Jdom简单的修改xml文件实现
- parseInt(string, radix)
- ZOJ1648 Circuit Board 2017-04-18 20:31 34人阅读 评论(0) 收藏
- MySQL—练习2
- 12、Docker的网络--bridge
- Android-工作总结-LX-2018-08-20-setHint