我有一個Java多線程文件搜尋器,我正在做一個問題。我的問題是,我有一個workQueue,它是一個linkedBlockingQueue,它包含我想要用我的線程爬過的文件的名稱,每個線程將從workQueue中take()
,並在掃描整個文件的同時可能會將put()
另一個文件名放入workQueue(這是一個依賴檢查程序)。所以我從來沒有真正確定什麼時候工作全部完成,並且所有線程最終都會進入等待狀態,當他們嘗試從(最終)空workQueue中嘗試take()
時。初學者Java多線程問題
所以我想我的問題是,是否有一種有效的方法來終止所有的線程(當所有的線程都進入等待狀態時)?目前我只在主線程上使用sleep()
,然後在所有的工作線程中使用interrupt()
。
對不起,如果這個問題聽起來很混亂。
真誠的thanx爲downvotes人。但是在上帝的名下,請留下評論爲什麼這是不好的,所以我們都學習。 – JayC667
不確定downvotes,但我會用ExecutorService管理線程。 –