进程:
官话:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
个人:执行程序需要将其装载到内存中,分配一定的资源(内存,I/O),以执行此程序,基于此,可以说一个进程是一次执行过程中的程序,是动态的。操作系统进行资源分配的时候只分配到进程,这就是独立单位的意思。
特点:进程之间是独立的,每个进程独立运行在系统分配的特定内存空间中,有一切必须的资源去完成执行过程.多进程在IOS中可能存在于系统中。
线程:
官话:线程是程序执行流的最小单元,线程是进程中的一个实体,进程的所有任务都在线程中执行,线程是 CPU 分配资源和调度的最小单位.
个人:进程分配到资源,需要线程去具体执行操作,线程因为进程存在而存在,因进程结束而结束,一个进程至少有一个主线程。进程和线程是一对多的关系,一个进程可以对应不止一个线程,一个线程只能对应一个进程。
联系:
1.线程是进程具体执行单元,所有进程的任务都要通过线程来实现。
2.一个程序可以有多个进程(多进程),一个进程可以有多个线程,而且至少必须有一个线程。
3.同一进程内的线程共享进程资源,单个线程的崩溃不必然导致进程的崩溃,除非其他线程访问该崩溃线程的内存。
区别:
1.进程独享地址空间,线程则与同一进程下的其他线程共享地址空间。
2.进程因为其独立性,在保护模式下,即使崩溃也不会对其他进程产生影响。而线程的崩溃则可能会导致其他线程崩溃,IOS中主线程的崩溃导致整个进程崩溃。
3.线程是处理器调度的基本单元,进程不是。
4.线程切换的速度要比进程快得多,因为其资源开销小得多。
5.在IOS中,因为线程之间共享全局变量、静态变量,因此线程之间的通讯要比进程方便很多。
6.线程基于进程存在而存在,因此进程可以单独执行,线程则必须依赖于进程而执行。
多线程:
官话:一个进程可以同时执行多个线程,这些线程之间并发执行,完成不同的任务。
个人:一个程序需要同时处理不同的任务,而这些任务可以并发执行,通过创建多个线程来同时执行任务,提高程序的执行效率,避免等待。
优点:
1.提高程序执行效率,减少无谓等待,
2.多线程可以提高资源的利用率(CPU,内存等等)。
缺点:
1.提高程序复杂度。
2.因为线程之间共享资源,因此一旦多个线程需要访问同一个资源时,很可能会带来数据错乱和数据丢失等安全问题,容易得不偿失,虽然互斥锁可以在一定程度上解决这个问题,但是会提高CPU消耗。
网友评论