· 进程:可以理解成一个运行中的应用程序(每一个App(一个进程)都有自己独特的内存和磁盘空间)
· 线程:是进程的基本执行单元,CPU调度的最小单元,一个进程对应多个线程。(作用:执行APP代码)
· 主线程: 一个进程(App)至少有一个线程,这个进程叫做主线程,主要用来处理UI,所有更新UI的操作都必须在主线程上执行。耗时操作不能放在主线程,会卡界面,
· 多线程:在同一时刻,一个CPU只能处理1条线程,但CPU可以在多条线程之间快速的切换,只要切换的足够快,就造成了多线程一同执行的假象,主要目的:将耗时的操作放在后台执行
· 进程与线程的区别:
· 关系:一个进程可以有多个线程,一条线程可以并行(同时)执行不同的任务
· 地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
· 资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。
· 执行过程:每个独立的进程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
优缺点:
进程切换时,消耗的资源大,效率高。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程
两者均可并发执行。
多线程的进程中一个线程崩溃了就会导致进程崩溃,如果是主线程崩溃会导致程序崩溃;但是多进程中子进程崩溃了不会影响到其它进程,程序稳定性更好;
· 多线程:四种pthread,NSThread,GCD, NSOperation
网友评论