java 线程锁详细介绍及实例代码
程序员文章站
2024-03-08 21:14:34
java 线程锁
在java线程中运用synchronized关键字来达到同步的
synchronized可以锁方法,锁类,锁对象,锁代码块
方法锁...
java 线程锁
在java线程中运用synchronized关键字来达到同步的
synchronized可以锁方法,锁类,锁对象,锁代码块
方法锁
// 加在方法上面的同步锁是this public synchronized void print() { system.out.println("同步方法"); try { thread.sleep(3000); } catch (interruptedexception e) { e.printstacktrace(); } }
类锁
public synchronized void print(string msg) { // 类锁 synchronized (mythread.class) { system.out.println(msg); try { thread.sleep(3000); } catch (interruptedexception e) { e.printstacktrace(); } } }
对象锁
以卖火车票为例
public class window extends thread { public window(string name) { super(name); } static int tick = 100; static string obj = new string(); @override public void run() { // 开始卖票 while (tick > 0) { // 同步代码块 // 一把锁 钥匙 // 所有的线程 必须在这里排队 synchronized (obj) { if (tick > 0) { system.out.println(getname() + "卖出了第【" + tick + "】张票");// 失去了cpu资源 tick--; } } try { thread.sleep(100); } catch (interruptedexception e) { e.printstacktrace(); } } } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇: 深入解析Java并发程序中线程的同步与线程锁的使用
下一篇: Java web网站访问量的统计