进程与线程

进程概念 
  进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。 
  在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。
线程概念 
  线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。例如,假设用户启动了一个窗口中的数据库应用程序,操作系统就将对数据库的调用表示为一个进程。假设用户要从数据库中产生一份工资单报表,并传到一个文件中,这是一个子任务;在产生工资单报表的过程中,用户又可以输人数据库查询请求,这又是一个子任务。这样,操作系统则把每一个请求――工资单报表和新输人的数据查询表示为数据库进程中的独立的线程。线程可以在处理器上独立调度执行,这样,在多处理器环境下就允许几个线程各自在单独处理器上进行。操作系统提供线程就是为了方便而有效地实现这种并发性
引入线程的好处
(1)易于调度。
(2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。
(3)开销少。创建线程比创建进程要快,所需开销很少。。
(4)利于充分发挥多处理器的功能。通过创建多线程进程(即一个进程可具有两个或更多个线程),每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行。
进程和线程的关系
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

转载于:https://www.cnblogs.com/liuzijing688/archive/2007/08/06/844750.html

如何用一个父进程创建多个子进程 #include <unistd.h> #include <stdio.h> int main(void) { int i=0; printf("i son/pa ppid pid fpid\n"); //ppid指当前进程的父进程pid //pid指当前进程的pid, //fpid... 阅读详情

相关推荐

进程基础总结

进程基础总结

Jason_zhaojie的博客 529

线程进程有什么区别(简单介绍)

线程进程有什么区别(简单介绍) 简单介绍 一、线程的基本概念   线程进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。 ...

weixin_42981419的博客 11万+

进程线程的区别

转自文章进程线程的区别 1、根本区别 进程线程的根本区别是进程操作系统资源(OS)分配的基本单位,而线程是处理器(CPU)任务调度和执行的基本单位。 2、资源开销: 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。 3、包含关系: 如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线 同完成的;线程进程的一部分,所行过程不愿一条绿的,而

qq_40855100的博客 2万+

线程进程,你真得理解了吗

相信大家面试时一定没少被一个问题刁难,那就是进程线程的区别是什么?这个问题延申开来并不像表面那么简单,今天就来深入一探。 开始前先看一组非常传神的图例,相信可以帮助你更好理解进程线程的概念: 1 进程线程的关系和区别 什么是进程 进程可以说是一个“执行中的程序”。程序是指令、数据及其组织形式的描述,是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程进程有哪些特征? 进程依赖于程序运行而存在,进程是动态的,程序是静态的; 进程操作系统进行

云深不知处 14万+

什么是进程进程线程之间的关系!!!

什么是进程进程线程之间的关系!!! 首先我们先讲解进程进程是什么呢!!! 进程:是指系统正在运行的一个应用程序(手机上可以理解为一个App,PC上可以理解为程序),是系统进行资源分配和调度的基本单位。一个程序或者应用至少有一个进程线程线程呢则是CPU调度最小(比进程更小)的能独立运行的执行单元,也是有限的系统资源。 两者之间的关系:一个进程之间至少包含一个或多个线程,(包含的关系)进程有一个独立的运行空间,其中的线程共享此空间,也拥有此进程的全部资源,,,因此可以并发(并行)执行。 创建线程

Adorablenewwhite的博客 900

进程线程的关系

进程线程并非互斥,现代系统常结合两者构建复杂架构。例如:通过多进程实现服务隔离,每个进程内用多线程提升任务处理效率,从而平衡性能、稳定性和开发复杂度。进程线程操作系统中实现多任务处理的核心概念,二者既有区别又密切关联。

sre救赎之路 1406

进程线程相关

进程线程的区别 进程是资源分配最小单位,线程是程序执行的最小单位; 进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据; CPU切换一个线程比切换进程花费小; 创建一个线程进程开销小; 线程占用的资源要⽐进程少很多。 线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据...

qq_32534441的博客 359

线程进程

本文主要介绍了进程线程的概念、区别及其在Python中的实现。进程操作系统资源分配的基本单位,每个进程拥有独立的内存空间;线程是程序执行的最小单位,共享进程资源但拥有独立执行栈。文章通过代码示例展示了Python中multiprocessing模块创建子进程,以及threading模块实现多线程的方法,重点讲解了进程锁(Lock)解决并发安全问题、守护进程特性以及线程计时器的应用。最后对比了两者的核心差异:进程是资源容器,线程是执行单元,前者稳定性高但开销大,后者轻量但需注意共享资源安全。

m0_74350616的博客 1121

进程线程浅谈

进程线程的基础总结。

wahkim的博客 742

Linux进程线程

在本文章中,我们将要详细介绍一下Linux中有关进程相关的内容。以上就是我们Linux进程线程相关的介绍,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~

lim6ere的博客 1293

【Linux 线程进程线程进程技术基础

线程是CPU调度的最小单位,属于同一进程线程共享进程的全局内存、文件描述符等资源,但拥有独立的栈和程序计数器。进程操作系统资源分配的基本单位,每个进程拥有独立的虚拟地址空间、文件描述符、信号处理等资源。系统调用创建子进程,子进程复制父进程的资源(写时复制优化)。‌是经典的同步问题,通过互斥锁保护共享资源,条件变量实现线程间协调。‌:进程间资源隔离,崩溃不会直接影响其他进程46。‌:高效数据共享,需配合信号量同步。‌:结构化数据传输,支持多进程通信。‌:单向通信,适用于父子进程。回收资源,避免僵尸进程

以实战经验介绍行业知识 1441

线程进程的区别联系以及单线程进程进程线程的区别

线程进程 概念 进程(process):是指具有已一定功能的独立程序,是系统资源分配的基本单位,在内存中有其完备的数据空间和代码空间,拥有完整的虚拟空间地址。一个进程所拥有的数据和变量只属于它自己。 线程(thread):是进程内相对独立的可执行单元,所以也被称为轻量进程(lightweight processes);是操作系统进行任务调度的基本单元。它进程的其它线程共享该进程所拥有的全部代...

VicterTian的博客 3341

linux进程线程

创建完成后,通过特定的标识或条件,可以清晰地区分父子进程的代码逻辑,从而实现不同的功能和任务分配。以一个图形处理软件为例,一个进程中可能有多个线程,分别负责图像的读取、处理和显示,即使某个处理线程结束,只要其他线程仍在运行,进程就会继续存在。但此时,主线程的结束并不意味着整个进程的结束,只有当进程内的其他线程也都结束后,进程才会终止。在一个多线程程序中,各个线程的地位是平等的,它们按照操作系统的调度策略并发执行。线程的结束并不一定会导致所属进程的结束,只有当进程内的所有线程都结束时,进程才会真正终止。

lijiaweixx的博客 1222

深入解析进程线程:从原理到实践

本文深入解析了操作系统中的进程线程概念。进程是资源分配的基本单位,拥有独立地址空间,安全性高但开销大;线程是调度的基本单位,共享进程资源,轻量级但独立性低。文章详细对比了两者在资源开销、通信机制、安全性等方面的差异,并提供了应用场景建议。此外,还介绍了进程管理相关命令(top/df)、并发并行的区别、fork/vfork机制、僵尸/孤儿进程处理等核心知识点,为开发高性能应用提供了系统级的理论基础。

2301_78884150的博客 1335
上一篇: 使用DOS命令清理系统垃圾
下一篇: VS.NET下创建Windows服务
dd8378
博客等级 码龄11年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值