我正在編寫一個涉及多線程工作程序池Process
es的Java程序。類Process
的每個實例都需要能夠產生一個額外的線程來完成一些工作。但是線程應該由實例本身和其他人產生。不幸的是Runnable.run
是'公開',所以我不能真正執行這個沒有做一些伎倆。Java:在'Runnable'類中私下調用'run'
這裏是我計劃使用的伎倆:
- 實現
Runnable
在Process
- 寫這篇進入實施:
代碼:
class Process implements Runnable {
private boolean threadkey = false;
public void run() {
synchronized(threadkey) {
// is someone wrongly calling 'run'?
if(!threadkey)
return;
/* switch off threadkey to make sure
it cannot be called meaningfully again */
threadkey = false;
}
/* continue processing
*
*/
return;
}
當然,現在我只需要就可以做合法地是在撥打電話之前打開'threadkey'(這是私人的)。
優雅?或不?或者,還有更好的方法?或者我應該只是不打算強制執行此操作,並寫一個簡潔的小解釋,解釋不稱爲「運行」?
人們甚至會在需要做'跑步'的班級裏打'跑'嗎?