为什么线程的同步比不同步要慢

shkly 2009-03-01 02:48:02
我测试了一下,不同步的执行时间大概是同步执行时间的2倍,这是为什么呢,还有,这个时间差的大小取决于什么呢?
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2009-03-01
  • 打赏
  • 举报
回复
学习。
shkly 2009-03-01
  • 打赏
  • 举报
回复
谢谢楼上两位的回答,我明白了,同步时,排队等候的线程也是会花费系统时间的,而这个时间是会比调度花的时间久些,可以这么理解吧
小强提包包 2009-03-01
  • 打赏
  • 举报
回复
其实很好理解啊,一段代码如果设置了同步,那么就说明一个进程或者线程执行这段代码时,就不运行其他进程和线程去执行,比如说现在有A,B,C进程制定一段代码,A正在执行,BC执行到了这个代码,由于A在执行,BC在“门口”等待执行,又由于CPU是分时的,会给每个进程一段时间去执行,虽然给出一段时间让BC执行,但是BC还是不能执行,而无形中减少了A执行的时间(因为时间一部分分给了BC)。所以速度会慢,那么这个程度的话,得看很多方面,因为系统资源会因为很多方面所消耗,主要的我想应该是进程数吧,
shuanlarousi1 2009-03-01
  • 打赏
  • 举报
回复
程序的执行速度取决于程序对系统的开销大小,多线程的时候系统要为程序分花费时间配响应的资源,处理器每隔一段时间就要切换进程,进程的切换以及分配资源都需要花费时间 有时候也恰恰相反 所以就有楼主的问题了,多个程序并发执行,速度也会变快

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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