Test代码
package com.zhongruan.Thread1;
public class Test {
public static void main(String[] args) {
TicketRunnable ticketRunnable=new TicketRunnable();
Thread t1=new Thread(ticketRunnable,"窗口1");
Thread t2=new Thread(ticketRunnable,"窗口2");
Thread t3=new Thread(ticketRunnable,"窗口3");
t1.start();
t2.start();
t3.start();
}
}
TicketRunnable代码
package com.zhongruan.Thread1;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class TicketRunnable implements Runnable{
private int ticket=100;
Lock lock= new ReentrantLock();
// Object lock=new Object();
@Override
public void run(){
while (true){
lock.lock();
//synchronized (lock) {
if (ticket > 0) {
try {
Thread. sleep( 1000);
} catch (InterruptedException e) {
e. printStackTrace();
}
ticket = ticket - 1;
System. out . println(Thread. currentThread() .getName() + "-----" + ticket);
}
lock.unlock();
// }
}
}
}
MyThread1 代码
package com.zhongruan.Thread1;
public class MyThread1 extends Thread {
@Override
public void run() {
for(int i=0;i<0;i++){
System.out.println(getName()+"xyb"+i);
}
}
}
结果