同じブロッキングキューを共有する2つの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も、同じキューをリッスンしているこれらのタスクbcozの実行を開始する必要があると私は感じています。