把售票的方法提取出來(lái),再加上synchronized關(guān)鍵字,執(zhí)行的時(shí)候就不會(huì)出錯(cuò)了
@Override
public void run() {
shoupiao();
}
public synchronized void shoupiao(){
while(ticketCount>0){
ticketCount--;
System.out.println(Thread.currentThread().getName()+"賣(mài)出了1張票,剩余"+ticketCount+"張票");
}
@Override
public void run() {
shoupiao();
}
public synchronized void shoupiao(){
while(ticketCount>0){
ticketCount--;
System.out.println(Thread.currentThread().getName()+"賣(mài)出了1張票,剩余"+ticketCount+"張票");
}
2016-11-27
最新回答 / 小明100
Callable與 Future?兩功能是Java在后續(xù)版本中為了適應(yīng)多并法才加入的,Callable是類(lèi)似于Runnable的接口,實(shí)現(xiàn)Callable接口的類(lèi)和實(shí)現(xiàn)Runnable的類(lèi)都是可被其他線程執(zhí)行的任務(wù)。Callable的接口定義如下;public interface Callable<V> {?? ? ? V ? call() ? throws Exception;?}?Callable和Runnable的區(qū)別如下:I ?? Callable定義的方法是call,而Runnabl...
2016-11-26
凡是用語(yǔ)言解釋不清楚的,就用代碼來(lái)解釋?zhuān)?amp;lt;(* ̄▽?zhuān)?)/
2016-11-24
最贊回答 / 山河乾隆決
因?yàn)槠鋵?shí)字符串在之前就已經(jīng)拼接好了,只是當(dāng)一號(hào)線程重新拿到cpu資源時(shí)才打印出來(lái)
2016-11-21
就是啊 不設(shè)置為static 那么屬性就歸對(duì)象所有,每個(gè)對(duì)象的ticket數(shù)目都是5.我就想說(shuō)這代碼怎么怪怪的。。。
2016-10-25