多线程&多进程

多线程

对于单核cpu,同一时间只可能运行一个线程。只是由于线程任务可能存在一些必要的挂起时间(等待I/O等),这个时间被迅速切换来运行下一个线程,从而带来了挂起时间的节约和相应加速。

多核cpu情况下,多线程则存在核间资源共享的问题。python的GIL机制则是一个相当糟糕的解决方案。使得多线程效率可能还不如单线程。

多进程

每个核分别处理任务,可以不受其他任务影响的并行。特定需求下,也存在进程间通信的问题。