0
我有一些實現Runnable接口的類。它們中的每一個都是通過單獨的SingleThreadExecutor執行的。我無法修改執行例程,我只能爲它提供不同的Runnable。可以使用靜態閂鎖或信號量嗎?
我需要根據其他Runnables結果對Runnables進行一些操作。即我只想在run()方法內部運行一些操作,以防其他所有Runnable都到達該執行點。 或者說,我要運行一些日常運行(內部)方法只有當正在做同樣的Runnable的數量少於10
我看到的唯一的解決辦法是讓一個靜態變量CountDownLatch和信號量同步。
我實現了這個,但由於某些未知的原因,從某些Runnable SingleThreadExecutor開始,如果某些Runnables正在等待Latch或Semaphore,那麼它將不會啓動具有下一個Runnable的線程。例如7個Runnables啓動,其他則不啓動。
我的問題:我的靜態鎖存器或信號量同步方案是否正確?
從理論上講,你的工作可以起作用 - 很難說爲什麼它沒有看到一些代碼。 – assylias