开发者社区 问答 正文

关于主线程子线程运行顺序的疑惑

这里是书上截得一段程序,我不明白!
screenshotscreenshot
screenshot
screenshot

展开
收起
杨冬芳 2016-07-08 19:29:14 2267 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    因为pthread_join的存在,join使得主线程和子线程同步,主线程阻塞住等待子线程运行完。不同语言略有差异,但是基本上都是类似的,找一篇文章你看下http://blog.csdn.net/hmk2011/article/details/6289151
    线程创建后,多个线程谁在占有CPU是不确定的,所以可能先进主线程的wait,后进线程thread_funtionwait finish和running的顺序不确定,但是肯定是先执行完子线程才执行joined。单cpu上主线程先执行的概率大一些,因为和20ms的时间片相比,一条语句的执行几乎不花时间,很偶然地,执行完创建线程,时间片用完,先执行子线程。

    2019-07-17 19:53:50
    赞同 展开评论
问答标签:
问答地址: