ios线程问题

rui90102 2013-03-18 12:14:50
使用NSOperationQueue 添加了几个多线程问题,出现了死锁现象

如果让线程第一个执行完,在执行第二个,第二个执行完执行第三个,我的代码如下
if(isUpdateTest)
{
Test *test=[[[Test alloc]init]autorelease];
[queue addOperation:test];
}

if(isUpdateTest2)
{
Test *test2=[[[Test alloc]init]autorelease];
[queue addOperation:test2];
}


if(isUpdateTest3)
{
Test *test3=[[[Test alloc]init]autorelease];
[queue addOperation:test3];
}

...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LYTTE_LJ 2013-03-18
  • 打赏
  • 举报
回复
我记得NSOperationQueue有个最大并行数的属性可以设置的 叫什么Max什么的。记不清了。可以查下sdk,很容易找到。把最大并行数设成1之后NSOperationQueue就等于是顺序执行的,只要你每个NSOperation都采取同步执行就可以实现你要的效果;如果operation里面还存在异步,那么逻辑就会有点复杂,NSOperationQueue会顺序执行每个NSOperation,当这个NSOperation执行到异步的地方时NSOperationQueue就会开始下一个NSOperation的流程,不会等到NSOperation中的异步部分回调完成。
再搬一次砖 2013-03-18
  • 打赏
  • 举报
回复
引用 2 楼 ybh37 的回复:
既然是顺序执行,为什么要建多线程? 纯属逻辑短路!
+1 搞不懂
rui90102 2013-03-18
  • 打赏
  • 举报
回复
引用 2 楼 ybh37 的回复:
既然是顺序执行,为什么要建多线程? 纯属逻辑短路!
多线程里面不是有顺序执行的么,我之前没用过这个,不太熟悉,这个是之前人家写的代码,要求要这样改,要不然的话改动会很大的
咸清 2013-03-18
  • 打赏
  • 举报
回复
既然是顺序执行,为什么要建多线程? 纯属逻辑短路!
rui90102 2013-03-18
  • 打赏
  • 举报
回复

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧