进程与线程浅析(一)

首先,介绍一下两者的基本概念。

进程:1.程序或者说任务的执行过程。(动态性)

   2.持有资源(共享内存,文件)和线程(是资源和线程的载体)

线程:1.线程是系统中最小的执行单元

   2.同一个进程中可以有多个线程

   3.线程共享进程的资源

综上,进程和线程的关系可以类比为班级和学生的关系,学生是组成该班级的最小单元,班级是学生的载体,学生可以利用该班级的资源,比如桌椅板凳等。

其次,介绍一下线程的交互。

线程之间的关系可以分为两种,互斥与同步。

互斥:即线程对相同的资源进行持有,则必须等前一个线程释放该资源之后后一个线程才能去持有。

同步:即线程之间互相合作的过程。

综上,线程间的关系也可以用学生之间的关系来类比。互斥即学生对有限的学习资料的使用,必须等到没有学生使用这个资料时候,自己才能去使用。同步即学生需要合作完成某一活动,例如歌咏比赛,需要互相帮助。

好了,今天简单介绍总结了一下进程和线程的基本概念,明天继续。

时间: 2024-08-04 03:04:17

进程与线程浅析(一)的相关文章

操作系统 进程与线程 浅析

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握.最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1.计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2.假定工厂的电力有限,一次只能供给一个车间使用.也就是说,一个车间开工的时候,其他车间都必须停工.背后的含义就是,单个CPU一次只能运行一个任务. 3.进程就好比工厂的车间,它代表CPU所能处理的单个任务.任一时刻,CPU总是运行一个进程,其他进程处

进程与线程浅析(二)

今天主要介绍一下JAVA中,线程的使用. 首先,总结下java对线程的支持. 在JAVA中,对线程的支持主要体现在一个类(class)和一个接口(interfac)中. 即Thread类,和Runnable接口. 特点: a)两者皆继承于java.lang包. b)两者都有一个public void run()方法.提供线程实际工作的代码. 其次,介绍一下java中线程的创建和启动 a)线程的创建 Thread() Thread(String name) Thread(Runnable targ

进程与线程浅析(三)之线程三国战斗模拟

好久没有更新这个系列的文章了,那么书接前文.上一篇文章中已经说了小匹夫是做游戏开发的,光说不练假把式,下面的文章就利用java中的线程来做一个小小的模拟对战的演示好了. 既然是做游戏开发,游戏背景还是要有的,那么就选择三国题材吧. 既然是三国,那么就是乱世争天下咯,军队就是必不可少的. 小匹夫本人喜欢刘备,那么敌人自然就假设是曹操了. 这里我们使用Runnabel对象启动军队线程来模拟军队的战斗行为. //用来创建军队线程,模拟军队战斗 public class ArmyRunnable imp

c# 线程浅析(代理 、Invoke、Lock)

前言:本来想根据自己的经验总结一下c#线程相关的知识点, 写之前看了一些其他人的博客,发现自己也就掌握了不到三分之一....希望通过这次的博客将自己的知识点补充一下,写出更直白的博客和初学者分享. 这是我参考的博客地址:http://www.cnblogs.com/miniwiki/archive/2010/06/18/1760540.html  . 这个是他参考的英文原著地址:http://www.albahari.com/threading/ 原博客介绍的可以说深入浅出,鞭辟入里.不过我想写

进程、线程与JVM、CLR

进程和线程的关系: 网上有一副很经典的图可以让我们来理解进程和线程的关系: 下面这副图是一个双向多车道的道路图,假如我们把整条道路看成是一个"进程"的话,那么图中由白色虚线分隔开来的各个车道就是进程中的各个"线程"了. 这副图出自:http://www.blogjava.net/pengpenglin/archive/2008/09/02/226292.html 一些说明: 这些线程(车道)共享了进程(道路)的公共资源(土地资源). 这些线程(车道)必须依赖于进程(

进程、线程与应用程序域

进程.线程与应用程序域 2015-06-15 目录 1 进程  1.1 四个基本特征  1.2 进程的出现  1.3 进程的定义和特征  1.4 关于进程的总结 2 线程  2.1 线程的出现  2.2 关于线程的总结3 应用程序域(AppDomain)  3.1 应用程序域的出现  3.2 域与线程的关系  3.3 示例:在另一个应用程序域中执行代码参考: 1 进程 返回 1.1 四个基本特征 进程由操作系统创建.管理的,离开了操作系统也就不谈什么进程了,先看看操作系统的四个基本特征: 并发(

linux查看某个进程的线程id(spid)

鉴于linux下线程的广泛使用 我们怎么查看某个进程拥有的线程id了 现在很多服务的设计 主进程->子进程->线程(比如mysql,varnish) 主进程负责侦听网络上的连接 并把连接发送给子进程 子进程派生线程去处理这些线程 mysql(父进程460,子进程863) 1 460 425 333 ? -1 S 0 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/storage/mysql/backup --pid-file=/

该进程或线程自上一个步骤以来已更改

相关解决办法如下: VS进行高度时,断点处提示"该进程或线程自上一个步骤以来已更改" 每个断点跑两遍似的. 这个是由于在VS环境中 勾上了 "工具\选项--->调试--要求源文件与原始版本完全匹配"这个项 该进程或线程自上一个步骤以来已更改 英文表述:The process or thread has changed since last step 以下是是从网上摘录的解决办法. Q: I have a console application that exe

进程和线程、内核空间等概念

用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限.为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间.针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较