Java 多线程池大小上限
我正在尝试将线程池大小设置为大于我正在测试Mule应用程序的机器的内核数Java 多线程池大小上限,java,multithreading,mule,Java,Multithreading,Mule,我正在尝试将线程池大小设置为大于我正在测试Mule应用程序的机器的内核数 <vm:connector name="persistent" doc:name="VM"> <receiver-threading-profile maxThreadsActive="64" poolExhaustedAction="WAIT" threadWaitTimeout="-1"/> <vm:queue-profile maxO
<vm:connector name="persistent" doc:name="VM">
<receiver-threading-profile
maxThreadsActive="64"
poolExhaustedAction="WAIT"
threadWaitTimeout="-1"/>
<vm:queue-profile maxOutstandingMessages="5000">
<default-persistent-queue-store/>
</vm:queue-profile>
</vm:connector>
最终,我看到Mule将线程数限制为我机器的内核数。即使我尝试在常规配置元素中设置默认池大小,我仍然会受到相同的限制
<configuration doc:name="Configuration">
<default-threading-profile maxThreadsActive="64" maxThreadsIdle="32"/>
</configuration>
这就是发生的情况(我的机器有4个内核)
INFO 2014-11-11 11:12:22023[[App-1.0]。persistent.receiver.03]org.mule.api.processor.LoggerMessageProcessor:订单21036
INFO 2014-11-11 11:12:22025[[App-1.0].persistent.receiver.01]org.mule.api.processor.LoggerMessageProcessor:订单21037
INFO 2014-11-11 11:12:22030[[App-1.0].persistent.receiver.02]org.mule.api.processor.LoggerMessageProcessor:Order>621038
INFO 2014-11-11 11:12:23040[[App-1.0].persistent.receiver.04]org.mule.api.processor.LoggerMessageProcessor:订单21040
INFO 2014-11-11 11:12:23040[[App-1.0].persistent.receiver.03]org.mule.api.processor.LoggerMessageProcessor:订单21039
INFO 2014-11-11 11:12:23041[[App-1.0].persistent.receiver.01]org.mule.api.processor.LoggerMessageProcessor:Order>621041
INFO 2014-11-11 11:12:23043[[App-1.0].persistent.receiver.02]org.mule.api.processor.LoggerMessageProcessor:订单21042
INFO 2014-11-11 11:12:24060[[App-1.0].persistent.receiver.02]org.mule.api.processor.LoggerMessageProcessor:订单<3 27
INFO 2014-11-11 11:12:24061[[App-1.0].persistent.receiver.03]org.mule.api.processor.LoggerMessageProcessor:订单24
INFO 2014-11-11 11:12:24062[[App-1.0].persistent.receiver.01]org.mule.api.processor.LoggerMessageProcessor:Order>6 26
INFO 2014-11-11 11:12:24063[[App-1.0].persistent.receiver.04]org.mule.api.processor.LoggerMessageProcessor:订单23
INFO 2014-11-11 11:12:25081[[App-1.0].persistent.receiver.04]org.mule.api.processor.LoggerMessageProcessor:Order>6 29
INFO 2014-11-11 11:12:25083[[App-1.0].persistent.receiver.01]org.mule.api.processor.LoggerMessageProcessor:订单<3 28
INFO 2014-11-11 11:12:25090[[App-1.0].persistent.receiver.03]org.mule.api.processor.LoggerMessageProcessor:Order>6 30
INFO 2014-11-11 11:12:25092[[App-1.0].persistent.receiver.02]org.mule.api.processor.LoggerMessageProcessor:订单31
INFO 2014-11-11 11:12:26099[[App-1.0].persistent.receiver.04]org.mule.api.processor.LoggerMessageProcessor:Order>6 32
INFO 2014-11-11 11:12:26103[[App-1.0]。persistent.receiver.03]org.mule.api.processor.LoggerMessageProcessor:订单33
INFO 2014-11-11 11:12:26103[[App-1.0]。persistent.receiver.02]org.mule.api.processor.LoggerMessageProcessor:订单<3 34
INFO 2014-11-11 11:12:26105[[App-1.0].persistent.receiver.01]org.mule.api.processor.LoggerMessageProcessor:订单35
INFO 2014-11-11 11:12:27118[[App-1.0].persistent.receiver.03]org.mule.api.processor.LoggerMessageProcessor:订单<3 41
INFO 2014-11-11 11:12:27119[[App-1.0].persistent.receiver.04]org.mule.api.processor.LoggerMessageProcessor:Order>6 40
INFO 2014-11-11 11:12:27122[[App-1.0].persistent.receiver.02]org.mule.api.processor.LoggerMessageProcessor:订单<3 42
INFO 2014-11-11 11:12:27125[[App-1.0]。persistent.receiver.01]org.mule.api.processor.LoggerMessageProcessor:订单43
如何将接收器线程池的大小增加到64?还有另一个名为NumberOfConcurrentTransactivedReceiver的参数,不知怎么隐藏了它。我在Mule doc网站的任何地方都找不到它,甚至在Dossot的书中也找不到。以下配置为我实现了这一目的:
<vm:connector
name="order.vm.connector"
createMultipleTransactedReceivers="true"
numberOfConcurrentTransactedReceivers="64" >
<receiver-threading-profile
maxThreadsActive="64"
poolExhaustedAction="WAIT"
threadWaitTimeout="-1" />
<vm:queue-profile maxOutstandingMessages="4096">
<default-persistent-queue-store />
</vm:queue-profile>
</vm:connector>
<vm:endpoint
exchange-pattern="one-way"
name="order.vm.endpoint"
path="order.vm"
connector-ref="order.vm.connector" />
<vm:connector
name="order.vm.connector"
createMultipleTransactedReceivers="true"
numberOfConcurrentTransactedReceivers="64" >
<receiver-threading-profile
maxThreadsActive="64"
poolExhaustedAction="WAIT"
threadWaitTimeout="-1" />
<vm:queue-profile maxOutstandingMessages="4096">
<default-persistent-queue-store />
</vm:queue-profile>
</vm:connector>
<vm:endpoint
exchange-pattern="one-way"
name="order.vm.endpoint"
path="order.vm"
connector-ref="order.vm.connector" />