必备知识架构-线程与网络-①线程

[toc]

知识架构

iOS知识库

Android知识库

5、进程和线程的区别

(1)、进程和线程的区别

以下区别摘自:进程和线程的区别

一个程序至少一个进程,一个进程至少一个线程。

一个线程只能属于一个进程,而一个进程可以有多个线程,且至少有一个线程。

进程线程的区别:

1
2
3
4
5
6
7
8
9
资源拥有:同一进程内的所有线程共享该进程的资源。如内存、I/O、cpu等,但是进程之间的资源是独立的。
地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
>
一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
>
进程切换时,消耗的资源大,效率高。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。
>
两者均可并发执行。
>
(2)、一个app运行时只有一个进程吗?有没有多进程?

一个正在运行的程序可以看做一个进程。(例如:正在运行的QQ就是一个进程),进程拥有独立运行所需的全部资源。

iOS (APP)进程间8中常用通信方式总结

(3)、什么时候用进程?什么时候用线程?

进程与线程的选择取决以下几点:

1、需要频繁创建销毁的优先使用线程;因为对进程来说创建和销毁一个进程代价是很大的。

2、线程的切换速度快,所以在需要大量计算,切换频繁时用线程,还有耗时的操作使用线程可提高应用程序的响应

3、因为对CPU系统的效率使用上线程更占优,所以可能要发展到多机分布的用进程,多核分布用线程;

4、并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求;

5、需要更稳定安全时,适合选择进程;需要速度时,选择线程更好。

END