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

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

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

  • 写回答

11条回答

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用