MyLock.java
package demo7;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class MyLock implements Runnable{
int poll = 100;
Object object = new Object();
//声明lock锁
Lock lock = new ReentrantLock();
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
// synchronized (MyLock.class) {
lock.lock();//加锁
if (poll>0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"正在出售第"+(poll--)+"张票");
}
lock.unlock();//释放锁
// }
}
}
}
TestMyLock.java
package demo7;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class MyLock implements Runnable{
int poll = 100;
Object object = new Object();
//声明lock锁
Lock lock = new ReentrantLock();
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
// synchronized (MyLock.class) {
lock.lock();//加锁
if (poll>0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"正在出售第"+(poll--)+"张票");
}
lock.unlock();//释放锁
// }
}
}
}