package com.qianfeng.demo01;
/**
* 关于静态同步函数使用的锁
*
* 静态同步函数的锁是什么呢?
* 静态随着类的加载而加载,而这时内存中存储的对象至少有一个,也就是该类的字节码文件对象。
*
* 这个对象的表现形式:类名.class 他表示字节码文件对象, Class类的对象
* */
public class ThreadDemo03 {
public static void main(String[] args) {
SaleTicket02 st = new SaleTicket02();
System.out.println(st.isFlag()); //true
Thread t1 = new Thread(st);
Thread t2 = new Thread(st);
t1.start(); //开启了线程t1,具备执行资格,不一定有执行权利
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
st.setFlag(false);
t2.start(); //t2也具备了执行资格,不一定有执行权利
}
}
class SaleTicket02 implements Runnable{
private static int num = 100;
private Object obj = new Object();
private boolean flag = true;
public void setFlag(boolean flag) {
this.flag = flag;
}
public boolean isFlag() {
return flag;
}
@Override
public void run() {
if (flag) {
//
多线程——静态同步函数的锁的相关问题
最新推荐文章于 2021-11-22 15:59:10 发布
本文探讨了Java中静态同步方法的锁机制。当类被加载时,静态同步方法使用类的Class对象作为锁,确保线程安全。示例代码展示了如何在静态方法中实现同步,以防止资源竞争。
摘要由CSDN通过智能技术生成