1.多线程与多进程使用场景
多进程模型是用于每个进程干自己的事,互相不影响;多线程模型是用于所有线程协调干一件事,每个线程负责一个部分。
多线程模型中的线程,彼此的工作内容应该是不同的,同时又是互补的,大家完成的是同一件事的不同部分。基于这样的理解进行设计,就不存在“人弹”的可能性。
所以在一般通讯服务程序的场合,绝对应该使用多进程模型。
进程与线程,看着相似,实际的出发点和作用是不同的,所以不能乱用,要根据应用模型进行选择。再说得浅显点就是:在一个多线程模型中,任何两个线程都不应该使用同一个函数作为入口点!
2.多线程带来的问题
(1)线程同步的控制比较复杂
(2)容易造成死锁
(3)一个进程崩溃,毁掉的是一大批事情,而不仅仅是出问题的那一个,这不合理。而且在这种模型中,你无法中断一个已经出现问题的独立事情。