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票
没有票了
没有票了