进程和线程

进程线程的区别联系 我们都知道计算机的核心是CPU,它承担了所有的计算任务,而操作系统是计算机的管理者,它负责任务的调度,资源的分配管理,统领整个计算机硬件;应用程序是具有某种功能的程序,程序是运行于操作系统之上的。 进程 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程... 阅读详情

进程:多任务系统的产物

 

很久很久以前,是没有进程这个东西的。那时候的操作系统只能把要做的工作排好队,做完这件再做下一件,最多也就加个优先级,哪个关系好就先做哪一个。于是那些想一边听歌一边写程序的程序员们便不干了,开始修理那个操作系统,使之能同时运行多个程序。于是进程就出现了:它就是一个程序在数据集合上的一次执行。

 

因为突然变得僧多粥少了,所以每个进程只好做一些额外的事情:在别人使用之前把自己的东西收拾好,下次轮到自己时再摆出来。为了保存这些额外的东西,进程的结构也发生了相应的变化。一个进程被分成三大部分:代码段、数据段和PCB(进程控制块)

 

在多出来的PCB中,我们保存了如下信息:

 

l          进程标识符(操作系统用于识别进程的唯一标识)

l          处理机状态(主要是通用寄存器,指令寄存器,PSW和用户栈指针)

l          进程调度信息(状态、优先级,被阻塞原因和其他一些乱七八糟的东西)

l          进程控制信息(同步信息、代码段和数据段的信息、资源清单和指向下一个PCB的指针)

 

操作系统正是通过PCB来管理这多个进程。在这样的系统里,进程既是操作系统独立调度和分派的基本单位,又是一个可拥有资源的独立单位。

 

线程:进程的再分身

 

好了,现在程序员可以一般听歌一边写程序了。可是不幸的或者说是幸运的,新的问题出现了。如果多个进程间使用很多相同数据的话,实在是太浪费了。我们当然不能允许这样的事情持续下去,所以线程出现了。同一个进程下可以拥有多个线程,它们共享这个进程的资源,它们之间的切换也不再需要PCB,而只需要极少一点资源就可以了。在这样的操作系统里,线程变成了系统调度和分派的基本单位。

 

简单的说进程和线程有如下不同:

 

l          进程可以拥有资源,线程共享进程拥有的资源

l          进程间的切换必须保存PCB,同个进程的多个线程间的切换不用那么麻烦

 

最后我们以一个实例来作为本文的结束:

当你在一台PC上打开两个QQ时,每一个QQ是一个进程;而当你在一个QQ上和多人聊天时,每一个聊天窗口就是一个线程。

黑马毕向东Java课程笔记(day11):多线程(第一部分)——进程线程+线程创建+线程安全与同步代码块+同步锁/死锁 1、进程线程概述   首先,对于CPU执行每一个程序,其实都是在快速切换程序,一个核的CPU只能同时执行一个任务,因为CPU切换很快,我们反应不过来。   所谓进程,字面意思上理解就是“是一个正在执行中的程序”。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。对于一个进程,它还有可能分为多条执行路径(如进程迅雷下载可能分为多路径进行下载,这多条路径同时发送下载请求到... 阅读详情

相关推荐

黑马程序员 进程线程

---------------------- ASP.Net+Android+IOS">http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发、.Net">http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ---------------------- 一:进程线程介绍:

u012588267的专栏 666

黑马程序员19(文件目录命令01—明确命令分类学习目标)

1.查看目录内容ls2.切换目录cd3.创建删除操作touchrmmkdir4.拷贝移动文件cpmv5.查看文件内容catmoregrep6.其他echo重定向>>>管道 |

weixin_42681308的博客 239

黑马程序员——07 进程线程

------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------- ——进程 可以理解为现在正在运行的程序 进程线程的关系:进程包含线程 设一个进程要完成两个任务 任务1:a1-b1-c1 任务2:a2-b2-c2 同步执行的过程:a1-b1-c1-a2-b2-c2  异步执行的过程:a1-b1-c1

wentaonpa的专栏 516

黑马程序员关于进程线程的认知

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 进程是正在运行的程序,由操作系统的程序所体现的程序运的单元,我们用的window7系统打开任务管理器,就可看到系统好多正在运行的程序,这些进程都是CPU快速切换完成操作的,例如QQ,就有3个进程 每个进程至少有一个或多个线程在运行,例如在运行java时的主线程,直接或间接创建其它的多个

w12340031的专栏 524

进程线程的区别

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

qq_40855100的博客 2万+

线程进程 / 进程线程的区别联系

💻进程(process) 🎃进程的特点 📢进程跟程序不一样 🎯进程状态 📠线程(Thread) 🔦线程的特点 🚢进程 VS 线程 🛫区别 💡Tips:堆方法区 🧧多进程线程区别

qq_60021974的博客 7693

线程进程的区别

1. 进程(Process)进程是计算机中运行的一个程序的实例。它是操作系统分配资源调度的基本单位,每个进程都有自己的内存空间、文件描述符其他资源。每个进程都有独立的地址空间。进程之间的通信需要通过进程间通信(IPC)机制,例如管道、信号量或消息队列。进程是重量级的,创建销毁成本较高。2. 线程(Thread)线程进程中的一个执行单元,是CPU调度的基本单位。一个进程可以包含多个线程,它们共享进程的资源。线程之间共享同一个进程的内存空间资源(例如堆全局变量)。

Flying_Fish_roe的博客 5939

Linux进程线程的区别联系

Linux中,线程是CPU调度分派的基本单位,进程是分配资源的基本单位(操作系统)

qq_44846784的博客 2469

线程进程

这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。涉及到网络、磁盘IO的任务都是IO密集型任务,这类任务的特点是CPU消耗很少,任务的大部分时间都在等待IO操作完成(因为IO的速度远远低于CPU内存的速度)。当有某个任务完成的时候,会yield这个任务,就能执行for循环下面的语句,然后继续阻塞住,循环到所有任务结束,同时,先完成的任务会先返回给主线程

qq_45726327的博客 1205

进程线程区别、进程进程线程线程怎么通信

1 进程线程区别 根本区别:进程是操作系统资源分配的基本单位,而线程任务调度执行的基本单位 在开销方面:每个进程都有独立的代码数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码数据空间,每个线程都有自己独立的运行栈程序计数器(PC),线程之间切换的开销小。 所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线...

每天多学一点点. 的博客 540

Java之进程线程

深入理解进程线程 生动形象的比喻: 进程:一个车间 = 一个进程; (即一个运行的程序) 多进程:一座工厂可以同时运行多个车间; CPU进程:单CPU只能同时运行单个进程,多CPU可以同时运行多个进程线程分为单线程线程线程:车间内一个工人 = 一个线程; 多线程:车间内多个工人 = 多个线程进程线程:一个进程可以包括多个线程线程间内存共享:一个车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。 同理一个进程的内存空间是共享的,里面的每个线..

NoviceZ的博客 989
上一篇: 最简单的留言板
下一篇: Echo指南(二)
KBUG
博客等级 码龄24年 5粉丝 39原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值