1:对静态代码添加锁
private final static Object syncLock = new Object(); // 相当于线程锁,用于线程安全
public static int n=0;
public static void main(String[] args) {
synchronized (syncLock){//锁
for(int i=0;i<100;i++) {
n++;
System.out.println(n);
}
}
}
2: 对实例代码添加锁
public void test() {
synchronized (this){//锁
for(int i=0;i<100;i++) {
System.out.println(i);
}
}
}
本文介绍了Java中两种实现线程锁的方法:一种是对静态代码添加锁,通过定义一个私有的静态对象作为同步锁;另一种是对实例代码添加锁,使用当前对象(this)作为锁的对象。这两种方法都能确保在多线程环境下代码块的执行是线程安全的。
9万+

被折叠的 条评论
为什么被折叠?



