多线程、单线程 处理速度高低的本质

多线程、单线程 谁处理速度更快,是分场景的。

 

多线程,本质是将  串行变成并行

单线程,本质是将  并行变成串行

 

并行的问题:

1、CPU切换的成本,一次切换大概 1500ns

2、并行操作会有锁的问题,很大程度上影响处理速度

串行的问题:

1、当某个处理时间很长时,其他的处理只能一直等待。

2、无法利用CPU多核的优势

 

所以关键就在于,场景中是否会有处理时间很长的操作。

如果有,肯定是多线程,如果没有,肯定用单线程。

 

磁盘IO,网络传输,数据库请求都是 很慢的操作,所以经常我们见到这些场景下用 多线程。

内存操作 这些很快的操作,我们使用单线程比多线程更好(比如 Redis)。

posted on 2018-06-24 15:09  HB1  阅读(578)  评论(0)    收藏  举报

导航