多线程和多进程
一、. 并发和并行
(1)并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生
(2)并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。
并行:指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。
并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。
二、多线程和多进程的优缺点:
-
多线程
1、多线程的优点:
(1)所有线程可以直接共享内存和变量,线程之间的通信变得容易。
(2)线程方式消耗的总资源比京城方式少
2、多线程缺点:
(1)程序逻辑和控制方式复杂
(2)线程之间的同步和加锁比较麻烦
(3)一个线程奔溃可能影响到整个程序的稳定性 -
多进程
1、多进程优点:
(1)每个进程都相互独立,不影响程序的稳定性,子进程崩溃,主程序受到影响比较小。
(2)通过增加cpu,可以轻松扩展性能。
(3)每个子进程都有2GB地址空间和相关资源,总体性能能够达到的上限非常大。
2、多进程的缺点:
(1)逻辑控制复杂,需要和主程序交互。—进程之间通信是非常困难的
(2)如果有大量数据传输,需要跨进程边界,适合小数量数据传送的程序。
多进程和多线程如何选择:
在实际开发中,选择多线程还是多进程,应该从具体实际开发来进行选择,最好是多进程和多线程结合,即根据实际的需求,每个cpu开启一个子进程,这个子进程开启多个线程进行数据处理。