所有栏目

单线程和多线程的区别单线程是什么意思

已输入 0 字
优质回答
  • 假如说现在有下面四个问题:

    1+1=a,1+2=b,2+3=c,4+5=d

    单线程就是一个接一个的计算:

    第一步:

    1、+1=2,第二步:

    1、+2=3,第三步:2+3=5,第四步:4+5=9

    然后告诉你结果:

    a=2, b=3, c=5, d=9

    多线程,咱们就说四线程吧,就是同时计算四个问题:

    第一步:

    线程一:

    1、+1=2

    线程二:

    1、+2=3

    线程三:2+3=5

    线程四:4+5=9

    然后告诉你结果:

    a=2, b=3, c=5, d=9

    可见,多线程可以同时处理多个计算,计算能力似乎是成倍成比例上涨的,但是它有一个问题就是多个运算必须独立,比如:

    1+2=a,a+3=b

    这种计算,你不知道a就没法计算b,这种情况下就没办法多线程计算了。

    再就是“竞争状态”:

    就是说多个线程互相等待对方结束,或者等待对方释放资源。单线程的话所有的操作一定会是一个接一个的完成,所以不存在这个状况。但如果多线程的话,调度没有做好就很容易发生这种事情,比如不小心同时运行了本不应该同时运行的两个线程,或者其中一个线程没有在预定时间内结束就启动了第二个线程。

    单线程的好处就是易于编程,不需要考虑太多状况,缺点是效率低。

    多线程的好处是效率高,性能高,但是不是所有的运算都可以被并行化,而且容易出现各种意外的稀奇古怪的bug。

    2023-10-24 12:26:18
最新问题 全部问题