java 线程锁详细介绍及实例代码

网友投稿 195 2023-06-23


java 线程锁详细介绍及实例代码

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();

}

}

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ES2015 Symbol 一种绝不重复的值
下一篇:ES6概念 Symbol toString()方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~