我在數組中有幾個線程。 所有線程都在LinkedBlockingQueue上運行。 每個線程從隊列中獲取一個元素(這是一個文件名),讀取它的依賴關係(簡單I/O)並將這些依賴關係添加到隊列中,以便我們也可以獲得它們的依賴關係。在某個時候,隊列將是空的(當我們發現所有的依賴關係時)。問題是,如何檢查所有線程是否正在等待隊列中的元素,如果是,我如何終止它們? 我通過使用方法poll(long timeout,TimeUnit unit)「破解」它的工作,但我想從主方法終止它們。Java線程終止
編輯: 我不能在隊列爲空的情況下終止,因爲一開始我們可能只有一個文件在隊列中,而當一個線程正在處理它時,這個隊列是空的一段時間,直到新依賴關係被發現。
預先感謝您。
請給我們一些代碼。不明白爲什麼線程無法檢測到隊列是空的,然後終止? –