C++多线程
进程 线程:
并发编程:通常来说并发编程有两种模型,第一种是多进程,对于多进程来说,每个进程只有一个线程,进程间是可以相互进行通信的,进程间通信的方式有很多种,比如文件,管道,消息队列;
第二种并发模型是多线程,对于多线程而言,一个进程由两个及以上个线程,线程之前通过内存共享的方式进行通信。
那么对于这两个并发模型而言,他们各自都有哪些优缺点呢?
多线程优点:相对于一个进程来说,一个线程的启动速度很快,因为操作系统需要分配一系列的内部资源去管理进程,线程通常是被认为是轻量级的;
线程的第二个优点是它的开销更低,进程的开销更大,举个例子,操作系统需要对进程提供很多的保护,而且通过共享内存的通信方式要比文件管道消息队列的速度要快很多,所以,总而言之,多线程的性能要比多进程的性能优越,但是多线程也有它的缺点。
缺点:它的缺点就是很难管理,由很多线程的特定问题需要被小心的处理;另一个多线程的缺点是,它不能在分布式系统下运行,进程则没有这个问题。