线程(thread)与队列(queue)的关系?

GCD,对于线程与队列关系,或者说二者配合运行的不是很理解,例如,并发(concurrent)队列和串发(serial)队列,这2者怎么运行?还有,主线程和主队列的关系.

评论 (3)链接2012-12-23 
  • 0 支持
    GCD中并发队列只有global的三个是并发处理栈内任务。自己创建的和main属性的都是串发的,栈与栈之前是并发的GCD是通过BSD级别,在多核环境中对多线程并发的替代方案,不能单纯的用线程去做比较. – Thinking80s 2012-12-23
  • 0 支持
    dispatch_async函数会把block提交给队列就立即返回,不去关心block是否完成,由队列去安排调用里面添加的block,所以在串行的队列中,异步添加会按顺序添加进队列,也会按顺序去执行完成block,单从你上面的block内容执行上,与dispatch_sync效果类型,但如果后面还有其他需要执行的代码,则dispatch_async会很快调用,dispatch_sync会阻塞直到block完成
    在并行的队列也就是dispatch_get_global_queue,一共3个可用,当dispatch_sync调用一次,会占用阻塞一个,直到用完,dispatch_get_global_queue只能添加的时候安排优先级,不能去操作里面的调度
    – Thinking80s 2012-12-23
  • 0 支持
    http://2fwww.devdiv.com/forum.php?mod=viewthread&tid=130409 – Thinking80s 2012-12-23
德问是一个专业的编程问答社区,请 登录注册 后再提交答案