0
我有一些实现Runnable接口的类。它们中的每一个都是通过单独的SingleThreadExecutor执行的。我无法修改执行例程,我只能为它提供不同的Runnable。可以使用静态闩锁或信号量吗?
我需要根据其他Runnables结果对Runnables进行一些操作。即我只想在run()方法内部运行一些操作,以防其他所有Runnable都到达该执行点。 或者说,我要运行一些日常运行(内部)方法只有当正在做同样的Runnable的数量少于10
我看到的唯一的解决办法是让一个静态变量CountDownLatch和信号量同步。
我实现了这个,但由于某些未知的原因,从某些Runnable SingleThreadExecutor开始,如果某些Runnables正在等待Latch或Semaphore,那么它将不会启动具有下一个Runnable的线程。例如7个Runnables启动,其他则不启动。
我的问题:我的静态锁存器或信号量同步方案是否正确?
从理论上讲,你的工作可以起作用 - 很难说为什么它没有看到一些代码。 – assylias