Java 使用静态锁存器或信号量可以吗?
我有一些实现可运行接口的类。它们中的每一个都是通过单独的SingleThreadExecutor执行的。我不能修改执行例程,我只能为它提供不同的可运行程序 我需要根据其他Runnables结果对Runnables进行一些操作。也就是说,我只想在所有其他可运行程序都达到该执行点的情况下,在run()方法中运行一些操作。 或者,仅当执行相同操作的可运行程序数少于10时,我希望在run()方法中运行一些例程 我看到的唯一解决方案是创建一个静态变量CountDownLatch和信号量进行同步 我实现了这一点,但由于一些未知的原因,如果一些可运行程序正在等待闩锁或信号量,那么从某个可运行的SingleThreadExecutor就不会使用next Runnable启动线程。例如,7个Runnable启动,其他则不启动Java 使用静态锁存器或信号量可以吗?,java,multithreading,semaphore,countdownlatch,Java,Multithreading,Semaphore,Countdownlatch,我有一些实现可运行接口的类。它们中的每一个都是通过单独的SingleThreadExecutor执行的。我不能修改执行例程,我只能为它提供不同的可运行程序 我需要根据其他Runnables结果对Runnables进行一些操作。也就是说,我只想在所有其他可运行程序都达到该执行点的情况下,在run()方法中运行一些操作。 或者,仅当执行相同操作的可运行程序数少于10时,我希望在run()方法中运行一些例程 我看到的唯一解决方案是创建一个静态变量CountDownLatch和信号量进行同步 我实现了这
我的问题:我在静态锁存器或信号量上进行同步的方案正确吗?在以下情况下,
循环载波器通常比倒计时锁存器更有用:
多线程操作分阶段或迭代进行,并且李>
阶段/迭代之间需要单线程操作,
例如,组合上一个多线程的结果
部分
更多信息。示例从理论上讲,您所做的工作是可行的——如果没有看到一些代码,很难说为什么不可行。