天津网络优化网站建设,色盲,wordpress菜单选项如何链接,平面广告设计价格一.定义#xff1a; 进程#xff08;process#xff09;是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。 进程中所包含的一个或多个执行单元称为线程#xff08;thread#xff09;。进程还拥有一个私有的虚拟地址空间#xff0c;该空间… 一.定义 进程process是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。 进程中所包含的一个或多个执行单元称为线程thread。进程还拥有一个私有的虚拟地址空间该空间仅能被它所包含的线程访问。 二.区别 一个程序至少有一个进程,一个进程至少有一个线程.。 1.多进程比多线程程序要健壮进程有独立的地址空间一个进程崩溃后在保护模式下不会对其它进程产生影响而线程没有自己单独的内存地址空间。一个线程死掉整个进程就死掉了。 2.进程拥有独立的堆栈空间和数据段所以每当启动一个新的进程必须分配给它独立的地址空间建立众多的数据表来维护它的代码段、堆栈段和数据段这对于多进程来说十分“奢侈”系统开销比较大 线程不一样线程拥有独立的堆栈空间但是共享数据段它们彼此之间使用相同的地址空间共享大部分数据比进程更节俭开销比较小切换速度也比进 程快效率高但是正由于进程之间独立的特点使得进程安全性比较高也因为进程有独立的地址空间一个进程崩溃后在保护模式下不会对其它进程产生影响而线程只是一个进程中的不同执行路径。 3.进程——资源分配的最小单位线程——程序执行的最小单位。或者说是CPU调度和分派的基本单位。在Mac、Windows NT等采用微内核结构的操作系统中进程的功能发生了变化它只是资源分配的单位而不再是调度运行的单位。在微内核系统中真正调度运行的基本单位是线程。因此实现并发功能的单位是线程。 4.体现在通信机制上面正因为进程之间互不干扰相互独立进程的通信机制相对很复杂譬如管道信号消息队列共享内存套接字等通信机制而线程由于共享数据段所以通信机制很方便。一进程下的线程共享数据比如全局变量静态变量通过这些数据来通信不仅快捷而且方便当然如何处理好这些访问的同步与互斥正是编写多线程程序的难点 5.体现在CPU系统上面线程使得CPU系统更加有效因为操作系统会保证当线程数不大于CPU数目时不同的线程运行于不同的CPU上。 进程占用内存多切换复杂CPU利用率低 线程占用内存少切换简单CPU利用率高。 6.线程的执行与进程是有区别的。每个独立的线程有有自己的一个程序入口顺序执行序列和程序的出口但是线程不能独立执行必须依附与程序之中 由应用程序提供多个线程的并发控制。 三.进程、用户线程、内核线程的区别和联系 进程用户线程轻量级进程内核线程代码段有有有数据段有有有描述符task_struct有有有用户空间堆栈有一个线程组共享一个用户空间完全没有内核空间堆栈有有有PID独一无二的一组线程共享一个有这里的有是指拥有独立的。 四.进程与线程的选择 取决以下几点 1、需要频繁创建销毁的优先使用线程因为对进程来说创建和销毁一个进程代价是很大的。 2、线程的切换速度快所以在需要大量计算切换频繁时用线程还有耗时的操作使用线程可提高应用程序的响应 3、因为对CPU系统的效率使用上线程更占优所以可能要发展到多机分布的用进程多核分布用线程 4、并行操作时使用线程如C/S架构的服务器端并发线程响应用户的请求 5、需要更稳定安全时适合选择进程需要速度时选择线程更好。 6.对于一些要求同时进行并且又要共享某些变量的并发操作只能用线程不能用进程。转载于:https://www.cnblogs.com/curo0119/p/7857322.html