一个简单的多线程问题

芳草源 2015-08-14 10:52:34
我写了简单的四个线程,每个线程输出5此,为什么线程不是并发执行的,而是每个线程执行完了再执行另外一个呢?
下面是程序代码和运行结果

...全文
337 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kunzeal 2015-09-23
  • 打赏
  • 举报
回复
把count改成10000试一下效果
jacxie2009 2015-09-19
  • 打赏
  • 举报
回复
操作系统会优化作业队列的,另外要看你单核的cpu还是多核的,单核调度切换也是需要条件触发的吧
aabbcdl 2015-09-18
  • 打赏
  • 举报
回复
用的是虚拟机吗,如果是,虚拟机分了几个CPU,几个核,如果都是一个,就会这样
cocoabird 2015-09-15
  • 打赏
  • 举报
回复
并发需要一个临界点或者互斥量
qq_23238511 2015-09-13
  • 打赏
  • 举报
回复
操作系统不会那么傻去无缘无故切换线程,如果用sleep的话线程调度就会重新分配优先级,可以试试看。
大漠孤鸿 2015-09-12
  • 打赏
  • 举报
回复
你把countx改大点会看到神奇的结果。
zhxianbin 2015-08-14
  • 打赏
  • 举报
回复
3 的 printf 之前 有可能 4 的 其它语句执行了 啊,你又看不出来
JiangWenjie2014 2015-08-14
  • 打赏
  • 举报
回复
线程是并发执行的,你在while里面随机usleep一段时间试试

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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