多线程、单线程 处理速度高低的本质
多线程、单线程 谁处理速度更快,是分场景的。
多线程,本质是将 串行变成并行
单线程,本质是将 并行变成串行
并行的问题:
1、CPU切换的成本,一次切换大概 1500ns
2、并行操作会有锁的问题,很大程度上影响处理速度
串行的问题:
1、当某个处理时间很长时,其他的处理只能一直等待。
2、无法利用CPU多核的优势
所以关键就在于,场景中是否会有处理时间很长的操作。
如果有,肯定是多线程,如果没有,肯定用单线程。
磁盘IO,网络传输,数据库请求都是 很慢的操作,所以经常我们见到这些场景下用 多线程。
内存操作 这些很快的操作,我们使用单线程比多线程更好(比如 Redis)。
浙公网安备 33010602011771号