package test;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class ThreadTest {
private int j;
private Lock lock=new ReentrantLock();
public static void main(String [] args){
ThreadTest tt=new ThreadTest();
for(int i=0;i<2;i++){
new Thread(tt.new Adder()).start();
new Thread(tt.new Subtractor()).start();
}
}
public class Subtractor implements Runnable {
@Override
public void run() {
while(true){
synchronized (ThreadTest.this) {
System.out.println("j--="+j--);
}
/*lock.lock();
try {
System.out.println("j--="+j--);
} finally {
lock.unlock();
}*/
}
}
}
private class Adder implements Runnable{
@Override
public void run() {
while(true){
synchronized (ThreadTest.this) {
System.out.println("j++="+j++);
}
/*lock.lock();
try {
System.out.println("j++="+j++);
} finally {
lock.unlock();
}*/
}
}
}
}
Java synchronized与Lock对象锁
最新推荐文章于 2023-09-13 08:30:00 发布