“一条线程只能同时执行一个任务”这句话对不对

[复制链接]
103 8
“一条线程只能同时执行一个任务”这句话对不对
一条线程只能同时执行一个任务”这句话对不对

举报 使用道具

回复

9 个评论

alai04  新手上路  发表于 2018-5-24 10:53:08  | 显示全部楼层
dispatch_queue_t concurrentQueue = dispatch_queue_create("ConcurrentQueue", DISPATCH_QUEUE_CONCURRENT);
NSLog(@"任务1:语句1");
dispatch_async(concurrentQueue, ^{
sleep(10);
NSLog(@"任务2:语句1");
dispatch_sync(concurrentQueue, ^{
sleep(10);
NSLog(@"任务3:语句1");
});
NSLog(@"任务2:语句2");
});
NSLog(@"任务1:语句2");

举报 使用道具

回复
yjitx  新手上路  发表于 2018-5-24 11:07:41  | 显示全部楼层
Signal信号可以挂起当前任务,并切入执行信号处理任务,操作必须是可重入的。

举报 使用道具

回复
peng9988  新手上路  发表于 2018-5-24 12:18:29  | 显示全部楼层
ispatch_queue_t concurrentQueue = dispatch_queue_create("ConcurrentQueue", DISPATCH_QUEUE_CONCURRENT);
NSLog(@"任务1:语句1");
dispatch_async(concurrentQueue, ^{
NSLog(@"任务2:语句1");
dispatch_sync(concurrentQueue, ^{
NSLog(@"任务3:语句1");
});
NSLog(@"任务2:语句2");
});
NSLog(@"任务1:语句2");  
是因为这个问题不太懂,任务2和3在同一条线程执行,syn阻塞了这条线程,但是任务2还是能完成执行

举报 使用道具

回复
jmaliyg  注册会员  发表于 2018-5-24 13:29:31  | 显示全部楼层
这个回答666,我换种问法,一条线程阻塞了那么它还能不能执行任务

举报 使用道具

回复
zz6t6  新手上路  发表于 2018-5-24 13:34:33  | 显示全部楼层
并发算多条线程吗

举报 使用道具

回复
linetan  新手上路  发表于 2018-5-24 17:21:06  | 显示全部楼层
DISPATCH_QUEUE_CONCURRENT
这种queue 跟serial还是有区别的
执行的顺序是不一样的
concurrent这种是不需要等待处理结束就可以进行下步操作的
所以任务2还是能执行的
换句话说 serial是按顺序的,等待前一个结束才会执行下一个
concurrent是使用多个线程的
[ 此帖被zuyu在2018-04-19 17:17重新编辑 ]

举报 使用道具

回复
amour  新手上路  发表于 2018-5-24 17:31:56  | 显示全部楼层
“一条线程只能同时执行一个任务”这句话对不对
一条线程只能同时执行一个任务”这句话对不对

举报 使用道具

回复
731639068  新手上路  发表于 2018-5-24 18:35:36  | 显示全部楼层
任务二和任务三在同一条线程中执行,执行的sync的时候这条线程被阻塞了 线程被阻塞了还怎么执行任务呢。总结一下就是线程阻塞了还能执行任务?

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表