我有一个场景,两个 threadPool 实例共享同一个阻塞队列。这是代码
<bean id="TaskQueue" class="java.util.concurrent.LinkedBlockingQueue">
<constructor-arg type="int">
<value>1000</value>
</constructor-arg>
</bean>
<bean id="TaskThreadPool1" class="java.util.concurrent.ThreadPoolExecutor">
<constructor-arg type="int">
<value>10</value>
</constructor-arg>
<constructor-arg type="int">
<value>50</value>
</constructor-arg>
<constructor-arg type="long">
<value>5</value>
</constructor-arg>
<constructor-arg>
<value>SECONDS</value>
</constructor-arg>
<constructor-arg>
<ref bean="TaskQueue" />
</constructor-arg>
</bean>
<bean id="TaskThreadPool2" class="java.util.concurrent.ThreadPoolExecutor">
<constructor-arg type="int">
<value>1</value>
</constructor-arg>
<constructor-arg type="int">
<value>1</value>
</constructor-arg>
<constructor-arg type="long">
<value>5</value>
</constructor-arg>
<constructor-arg>
<value>SECONDS</value>
</constructor-arg>
<constructor-arg>
<ref bean="TaskQueue" />
</constructor-arg>
</bean>
现在我有一个问题,如果我通过 TaskThreadPool2.execute(task) 在 TaskThreadPool2 中提交超过 5 个任务会怎样。
我觉得TaskThreadPool1 也应该开始执行这些任务,因为它也在监听同一个队列。