Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 处理队列元素延迟的最佳设计(多线程)_Multithreading_Algorithm_Design Patterns_Queue - Fatal编程技术网

Multithreading 处理队列元素延迟的最佳设计(多线程)

Multithreading 处理队列元素延迟的最佳设计(多线程),multithreading,algorithm,design-patterns,queue,Multithreading,Algorithm,Design Patterns,Queue,我有一个阻塞的响应队列,需要在另一个线程添加响应大约10分钟后进行处理。每个元素都有一个时间戳字段。我想知道是否有比这个更好的解决方案: P1每秒抛出元素几次,当P1向队列中添加元素时,它会向其发出信号 P2接收信号,检查队列的第一个顶部元素并休眠,直到该元素准备好处理为止。有点像先进先出 P2唤醒、处理元素并重复,直到队列为空,然后再次等待信号。对我来说,这似乎没问题,但我会以异步方式进行 在示例中,每分钟检查队列中的内容,并尽可能处理所有内容。如果P2可以按照元素放入队列的顺序处理传入队列中

我有一个阻塞的响应队列,需要在另一个线程添加响应大约10分钟后进行处理。每个元素都有一个时间戳字段。我想知道是否有比这个更好的解决方案:

P1每秒抛出元素几次,当P1向队列中添加元素时,它会向其发出信号

P2接收信号,检查队列的第一个顶部元素并休眠,直到该元素准备好处理为止。有点像先进先出


P2唤醒、处理元素并重复,直到队列为空,然后再次等待信号。

对我来说,这似乎没问题,但我会以异步方式进行


在示例中,每分钟检查队列中的内容,并尽可能处理所有内容。

如果P2可以按照元素放入队列的顺序处理传入队列中的元素,但不能立即处理,则没有理由执行我能想到的更复杂的操作。