1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 单线程和多线程的区别单线程是什么意思 – java – 前端

单线程和多线程的区别单线程是什么意思 – java – 前端

时间:2018-11-15 16:27:10

相关推荐

单线程和多线程的区别单线程是什么意思 – java – 前端

假如说现在有下面四个问题:

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。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。