執行緒體:執行緒執行時要實現的真正功能的**。
//實現runnable介面
class
mythread
implements
runnable}}
}}class
test1
}
執行緒的引數必須為物件,runnable為執行緒體介面
使用synchronized(this){}來為執行緒加上同步鎖:
作用是執行緒一執行時獲得了執行緒鎖的使用權,其他執行緒在執行時遇到執行緒鎖將等待至鎖內的**塊結束後才能執行並獲得鎖的執行權。
但是當執行緒一執行到迴圈結束到break階段時候,執行緒二執行時i的值為-1執行完列印語句之後才開始跳出,出現錯誤。
//生產者消費者問題
public
class
producerconsumer
}//定義饅頭
class
mantou
public string tostring()
}//堆疊型籃子
class
syncstack
catch(interruptedexception e)
}//叫醒正在wait的其他執行緒。
this.notify();
arr[index] = mt;
index++;
}//拿出饅頭
public synchronized mantou pop()
catch(interruptedexception e)
}//叫醒其他正在wait的執行緒
this.notify();
index--;
return arr[index];
}}
//生產者
class
producer
implements
runnable
public
void run()
catch(interruptedexception e) }}
}class
consumer
implements
runnable
public
void run() catch(interruptedexception e) }}
}
java中的執行緒
如何建立乙個控制單元或執行緒?第一種方式 1 繼承thread類。覆蓋run方法,將多執行緒要執行的 放到run方法中。2 呼叫start方法,開啟執行緒,並執行run方法。特性 隨機性 每次執行的結果不一樣,多個執行緒搶資源的結果 建立乙個thread類或其子類,才能夠產生乙個控制單元.第二種方式...
java中的執行緒
執行緒學習 兩種方法建立執行緒,通常使用第二種方法更加靈活,主要是第二種方法適合多個相同程式的執行緒去處理同一資源的情況,即建立多個執行緒,傳入同乙個物件,就是對該物件同時用多個執行緒進行處理。1.建立thread類的物件就是建立了乙個執行緒,thread類中的run方法是空的,通常繼承thread...
java執行緒停止 三
例如 生產者產生隨機數,但生產者生產到數字0時,產生毒丸物件放入到生產佇列中,立即停止生產,消費者接受生產者生產的資料,簡單列印出來,當接收到毒丸物件時,消費者停止消費。public class threadcacell4 else class consumer implements runnabl...