发布网友 发布时间:2022-03-04 04:49
共2个回答
懂视网 时间:2022-03-04 09:11
ios开发进程与线程的区别是概念不同以及操作系统资源管理方式不同。
1、概念不同:线程是CPU运行和调度的基本单位,可以理解为一个进程中执行的代码片段;而ios开发进程是资源分配的基本单位,进程是一块包含了某些资源的内存区域。
2、操作系统资源管理方式不同:进程有的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响;但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。
总结:
ios开发进程与线程的区别是概念不同以及操作系统资源管理方式不同。
热心网友 时间:2022-03-04 06:19
我们先抛开进程和线程的正式定义,先来考虑一个简单的问题
如果把计算机比作一个社会。
那么一个进程就是社会中的一家公司,负责对外提供一种或一组服务,整个公司以统一的形象出现在其他人的眼前。用户从公司获取服务,公司为其提供预期的产品。在用户看来进程是一体的。
但实际上,公司只是一个“团体”,或者说只是一个“概念”,并不是真实存在的东西。
所以公司要有人,人负责去完成具体的工作,人即为线程。(无论领导还是员工都是线程)
也就是说,进程与线程是包含关系,进程是一种“团体”,而线程则是团体中实际工作的成员。我们不应该讨论进程和线程的区别,而应该讨论进程和线程的关系。
在一个计算机系统中,进程是一个程序执行的基本单位,无论是用户操作还是其他消息,都是发送给一个进程的。
但是,进程作为一个“外壳”本身不可以被执行,因此任何与进程的交互,实际上都是由进程内部的某个线程完成的。这个线程可能是进程被启动时,默认启动的Main线程,也可能是由Main线程创建的其他线程。进程内部所有的线程分工合作,协同完成进程的工作。
这里需要明确一个问题就是,一个进程至少包含一个线程,因为至少需要一个线程才能构成一个实体。
题主的最后一个问题就是,进程和线程分别使用什么样的资源?
前面我们已经阐述了,进程是一个团体,而线程是进程中的成员。那么稍微改变思考方式,我们可以知道,进程持有的资源就是进程内部所有线程的公共资源,线程持有的资源就是该线程自己持有的私有资源。
也就是说,进程持有的资源可以被进程内部任何一个线程所使用。而线程持有的资源,原则上只有该线程自己可以使用。
而进程持有的资源通常包括窗体、文件、堆数据等,可以被其内部所有线程使用。线程持有的资源通常是该线程自身工作所需要的数据,通常可以理解为线程执行过程中创建的局部变量等。
总结来说
进程和线程的关系是包含关系,一个进程包含一个或多个线程。
进程是程序运行的单位。而线程则是实际工作的单位。
进程持有的数据通常为进程内公有数据,可以被其内部所有线程使用。线程持有的数据通常是该线程的私有数据,原则上不可以被其他线程使用。
@菜虾米501 本人原创编写