Thread實現方式
- TicketThread類代碼如下:
import java.util.Random;
public class TicketThread extends Thread{
private static int i=1;
Thread th =Thread.currentThread();
String name;
public TicketThread(String name) {
super();
this.name = name;
}
public void run() {
while(i<=96) {
try {
th.sleep(new Random().nextInt(1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(this) {
System.out.println(this.name+",出售第"+i+"張票");
i++;
}
}
}
}
- TestThread類代碼如下(TicketThread)的實現類
public class TestThread {
public static void main(String[] args) {
TicketThread th1 = new TicketThread("窗口1");
TicketThread th2 = new TicketThread("窗口2");
TicketThread th3 = new TicketThread("窗口3");
TicketThread th4 = new TicketThread("窗口4");
TicketThread th5 = new TicketThread("窗口5");
th1.start();
th2.start();
th3.start();
th4.start();
th5.start();
}
}
Runnable實現方式
- TicketRunnable類代碼如下:
public class TicketRunnable implements Runnable {
Thread th = Thread.currentThread();
int i = 1;
public void run() {
while (i <= 96) {
try {
th.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (this) {
System.out.println(Thread.currentThread().getName() + ",出售第" + i + "張票");
i++;
}
}
}
}
- TestRunnable類代碼如下(TicketRunnable的實現類)
public class TestRunnable {
public static void main(String[] args) {
TicketRunnable tr =new TicketRunnable();
Thread th1 = new Thread(tr,"窗口1");
Thread th2 = new Thread(tr,"窗口2");
Thread th3 = new Thread(tr,"窗口3");
Thread th4 = new Thread(tr,"窗口4");
Thread th5 = new Thread(tr,"窗口5");
th1.start();
th2.start();
th3.start();
th4.start();
th5.start();
}
}