![]() |
1
7
可以使用pthread条件等待作业达到所需状态。
thread1将与其他线程一起等待
你需要:
第一个线程初始化所有:
通常,您将等待放在一个循环中,以检查条件,不管它是什么。
另一个线程在适当时执行此操作:
|
![]() |
2
1
我认为你的解决方案很好,只是你需要使用
关于死锁:如果OfflineWorker的初始化部分(即释放锁之前的代码)没有在任何地方等待,死锁是不可能的。如果您的解决方案中存在实际的死锁,那么让线程1等待线程2的任何其他解决方案也会有死锁(我可以想象这种情况)。 注释后编辑:如果在线程1等待线程2的初始化完成时将消息传递给线程1,则可能会出现死锁,特别是当消息存在某个有界缓冲区或消息传递函数等待回复时。在这种情况下,我建议放弃等待线程2的想法,并可能传递一些回调,当初始化完成时,将从线程2调用这些回调。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |