进程和线程的区别

线程:程序运行过程中,能够执行 程序代码的一个执行单元。4种状态:运行、就绪、挂起、结束。

进程:一段正在执行的程序,程序+数据和进程控制块。4种特征:动态性、并发性、独立性、异步性。

区别:

1、 包含关系:一个程序至少有一个进程,一个进程至少有一个线程.

2、 内存共享:进程在执行过程中拥有独立的内存单元(一个进程崩溃后,在保护模式下不会对其它进程产生影 响;而多个线程共享进程提供的内存(拥有自己的私有栈空间只是作为运行需要的极少内存),从而极大地 提高了程序的运行效率,但一个线程死掉就等于整个进程死掉。所以多进程的程序要比多线程的程序健壮

3、执行过程:进程独立执行;线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

4、从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

 

例如:

开个QQ,开了一个进程;开了迅雷,开了一个进程。

在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。

通俗的讲:“进程是爹妈,管着众多的线程儿子”

你可能感兴趣的:(线程/并发,操作系统/网络)