a305985895 2015-07-12 09:35 采纳率: 0%
浏览 4638

请问多线程的同步和串行有什么区别

如果一段代码被锁住执行完再去执行另一段代码,这和顺序执行有什么区别呢,求各位大神解答啊

  • 写回答

11条回答 默认 最新

  • FireBurn 2015-07-14 04:08
    关注

    看得出来,楼主对于并发和多线程的一些概念理解上和大家有些出入,而且缺乏实际的经验。
    这里打个比方,借用超市运货来说明:
    有一家超市要把货搬到仓库里,可以选择一个人来搬货(**单线程**)或者多叫几个人来搬货(**多线程**)。很显然在这里并发提升了效率。
    继续深入这个场景,假设有些货物需要搬到地下的仓库,需要通过电梯运输。但是电梯的容量有限,如果电梯走了,其他使用电梯的人就必须等待。
    这里电梯可以看作一个**受限的资源**或者**同步区域**。在这里等待是必须的,所以这里的矛盾就是需要使用的资源是有限的。
    再来看一下操作系统对于CPU的调度:
    假设一个单核的CPU,只能运行一个线程,但是现在有多个线程要运行,怎么办?你可以让CPU在不同的线程之间切换,每个线程只准运行一小段时间。
    只要切换的速度够快,给人的感觉就好像是在同时运行多个线程。那么在这里线程切换的意义就在于提升交互体验。

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab