场景如下:
您有两个线程(代表不同的机器),它们从单个数据源获取相同的输入,运行相同的进程(不依赖于任何共享资源)并返回相同的值。
如果一个线程(读:机器)比另一个线程快,并且先完成,程序会接受这个值并结束,还是等待另一个线程完成?如果答案是后者,是否有办法强制程序接受第一个答案?
这样做的实际原因可能是为了处理难以忍受的慢机器。
这完全由你来决定。如果生成两个线程,则可以从父进程控制它们并决定所需的行为。您可以在两个线程上都执行wait
,或者等待直到其中一个可用(例如:使用父线程的select
或子线程的signal
),并可能杀死另一个(再次使用信号,或kill
)。
psearch
),其中线程协作查找结果,并在其中一个成功时立即停止。