首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"iOS线程编程指南“中的条件示例

"iOS线程编程指南“中的条件示例
EN

Stack Overflow用户
提问于 2012-06-19 18:28:26
回答 1查看 352关注 0票数 0

在阅读"iOS线程编程指南“时,我对”使用条件“一节中的示例代码感到困惑。

查看清单4-3清单4-4,它们用于演示NSCondition类的使用。如果线程开始使用4-3等待条件,然后第二个线程尝试使用4-4向条件发出信号。由于条件正被第一个线程锁定,那么第二个线程是否有可能发出该条件的信号?如果不是的话,难道不是一个僵局吗?

如果这是个愚蠢的问题,请原谅-)

以下是Apple提供的关于如何使用Cocoa条件的示例:

使用Cocoa条件的清单4-3

代码语言:javascript
运行
复制
[cocoaCondition lock];
while (timeToDoWork <= 0)
    [cocoaCondition wait];
timeToDoWork--;
// Do real work here.

[cocoaCondition unlock];

清单4-4发出Cocoa条件信号

代码语言:javascript
运行
复制
[cocoaCondition lock];
timeToDoWork++;
[cocoaCondition signal];
[cocoaCondition unlock];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-19 20:41:08

当第一个线程调用等待时,它将放弃锁的同步。当第二个线程调用信号时,第一个线程可以唤醒,并在第二个线程解锁时恢复。此时,第一个线程恢复了锁的同步,并且可以安全地进行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11107096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档