我有一个场景,其中两个threadPool实例共享相同的阻塞队列。下面是代码ThreadPoolExecutor共享相同的阻塞队列
<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通过TaskThreadPool2.execute(任务)提交超过5任务行为。
我觉得TaskThreadPool1也应该开始执行这些任务bcoz它也在监听同一队列。
数据确实是代码。 – Perception