作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如如果我有一个包含两个线程的线程池,但希望每个线程专用于单一类型的任务。即任务 1 只能在池的线程 1 上执行,任务 2 只能在池的线程 2 上执行。我不想要两个以上的线程,也不希望两个任务1同时运行(每个线程一个)。可能吗??
最佳答案
不,不可能。这就是使用线程池的好处:线程池将选择哪个线程来执行交付的任务。请注意,即使您使用 Executors#newFixedThreadPool(2)
,您将拥有一个包含 2 个线程的线程池,但这并不能保证每个任务都在不同的线程中执行。
如果您需要在不同的特定线程中执行任务,请创建您自己的线程。如果您不想手动创建线程,请使用 2 个单线程执行器。您可以使用 Executors#newSingleThreadExecutor
创建它们(但是这样很麻烦)。
关于java - 如何确保单个 Runnable 任务不会在两个线程上同时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26479432/
我是一名优秀的程序员,十分优秀!