线程和长时间睡眠

时间:2017-04-19 16:42:01

标签: multithreading sleep

这是一个独立于编程的问题。假设必须执行以下逻辑:

.scale

这种逻辑的几个并行执行将存在。

我所知道的两个常用选项是:使用单个进程单线程或使用多个线程。

在单进程单线程策略中,进程将有一个事件循环(基于具有超时的select,例如),每个会话一个会话数据块,逻辑填充分为3部分(参见伪代码)本文结束)。

通常的替代方案是为每个会话使用不同的线程。因此,主要的过程可以直接:

do_something1()
read_something()
do_something2()
sleep()
do_something3()

这个替代方案的问题是,如果睡眠很长(超过一天),并行线程数增加

问题是¿这个问题有什么简单的解决办法吗?例如,可以“分离”线程,保存/重新启动它或其他东西。

如果解决方案还涵盖了在睡眠期间重启的可能性而不会丢失正在运行的会话,那么这是一个加分。

单进程单线程的伪代码:

do_something1()
read_something() // blocking read
do_something2()
sleep() // blocking wait
do_something3()

0 个答案:

没有答案
相关问题