import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class Midlet5 extends MIDlet {
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
TickerThread th = new TickerThread();
Thread t1 = new Thread(th);
Thread t2 = new Thread(th);
t1.start();
t2.start();
}
class TickerThread implements Runnable {
private int tickerNum = 10;
public void run() {
while (true) {
synchronized (this) {//實現線程同步,如果這代碼沒有被運行完,另一個線程就不強用這段代碼
if (tickerNum <= 0) {
System.out.println("沒有票了");
break;
} else {
try {
Thread.currentThread().sleep(1000);
} catch (Exception e) {
}
tickerNum--;
System.out.println(Thread.currentThread().getName()
+ "賣出了一張票,還剩下" + tickerNum + "票");
}
}
}
}
}
}
運行後控制檯輸出:
Thread-6賣出了一張票,還剩下9票
Thread-7賣出了一張票,還剩下8票
Thread-6賣出了一張票,還剩下7票
Thread-7賣出了一張票,還剩下6票
Thread-6賣出了一張票,還剩下5票
Thread-7賣出了一張票,還剩下4票
Thread-6賣出了一張票,還剩下3票
Thread-7賣出了一張票,還剩下2票
Thread-6賣出了一張票,還剩下1票
Thread-7賣出了一張票,還剩下0票
沒有票了
沒有票了