我执行Java应用程序执行并行处理: 当我的应用程序启动,属于一个线程池 4个线程创建的。 然后,我开始接收添加到LinkedBlockingQueue的对象。每个对象都有一个ID,并根据该ID执行预定义的任务。我的“队列使用者”是那些初始化的4个线程,他们开始将对象带出队列,并执行与每个对象相对应的任务。并行处理Java中 - 计划任务线程
可以定义其中Thread将处理每个对象?我想“为每个线程安排任务”。
例如:
- 当第一对象被从队列中取出,他将通过线程1进行处理。
- 如果第二个对象作为与第一个对象不同的ID,它将由Thread2处理。
- 如果第三个对象的ID与第一个对象的ID相同,它将“转到Thread1”。
我该如何实现?
谢谢
发表当前的代码 –
我想你可以,但这种排除了有一个队列和多个线程的目的。我假设有多个线程的意思是通过使用并行处理来提高吞吐量。所以理想情况下,任何空闲线程都会立即启动新的工作并开始处理。在你描述的场景中,似乎线程可能处于空闲状态,因为队列中的下一个任务'属于'某个其他正在忙的线程。你确定你不想要4个独立的队列吗? –