这是问题:
我有两个主题:主要主题和另一个主题。
在某些操作上我必须停止第二个线程几秒钟,等待第一个线程做某事......
我的问题:
这是最好的选择,为什么? 在第二个线程..
伪代码是这样的:
在第二个帖子上:
...
do some calculations
send the results to the first thread and wait for the # of seconds to wait (let's say K)
wait K seconds
答案 0 :(得分:1)
+[NSThread sleepForTimeInterval:]
更有可能做你想做的事。处于第二个线程不会影响事情。
但是,我不明白为什么第二个线程根本不应该睡觉。如果您想等待新数据,请使用NSCondition或NSConditionLock等信号来指示数据何时到达。
或者,根本不要直接使用线程。您可以使用NSOperation或performSelectorInBackground:或dispatch_ *来命名。
编辑:在编写传统的线程同步代码时,您需要非常小心,并且每次编辑时都需要一样小心< / em>添加新功能。我有一些线程代码,我需要考虑几分钟来弄清楚发生了什么。死锁并不好玩。