这里是书上截得一段程序,我不明白!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
因为pthread_join的存在,join使得主线程和子线程同步,主线程阻塞住等待子线程运行完。不同语言略有差异,但是基本上都是类似的,找一篇文章你看下http://blog.csdn.net/hmk2011/article/details/6289151
线程创建后,多个线程谁在占有CPU是不确定的,所以可能先进主线程的wait,后进线程thread_funtionwait finish和running的顺序不确定,但是肯定是先执行完子线程才执行joined。单cpu上主线程先执行的概率大一些,因为和20ms的时间片相比,一条语句的执行几乎不花时间,很偶然地,执行完创建线程,时间片用完,先执行子线程。