进程与线程的一些简单理解

一.进程与线程的定义

进程是执行中的程序:程序是一段描述指令的文本,是一个静态的概念,把这段指令运行起来,每次运行就得到了一个进程,进程是动态的概念;操作系统会为进程分配资源。

线程是进程中一段实际执行的代码:它也是一个动态的概念;操作系统调度和分派线程,为线程分配CPU时间片,使其执行。

二.进程与线程的比较

1.从操作系统角度而言

进程是资源分配的基本单位:也就是说操作系统会为不同的进程分配不同的资源,如Window句柄、文件系统句柄、内核对象、虚拟内存等,我们可以说操作系统把Window句柄分配给某个进程,而不能说操作系统把Window句柄分配给某个线程。同时,一个进程内的所有线程共享分配给这个进程的所有资源,因而线程间的通讯非常迅速,而进程之间的通讯需要通过IPC。

进程是调度和分派的基本单位:操作系统为线程分配CPU时间片,使多个线程可以同时运行在不同的CPU上,或多核CPU的不同内核上。

2.从并发角度

进程之间可以并发执行:如你可以运行多个记事本程序,运行多个QQ。

线程之间也可以并发执行:如你运行Word程序时,一个线程等待用户输入,一个线程进行拼写检查,一个线程将数据存入临时文件中...

简单来说:二者都可以并发,只是并发的层次不一样。

3.从系统开销角度

创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,操作系统所付出的开销显著大于创建或撤销线程时的开销;进程切换的开销也远大于线程切换的开销。

三.多线程带来的问题

1.由于进程内的所有线程共享分配给这个进程的所有资源,如果并发的线程访问相同的数据,就会造成数据的不一致,必须实现同步机制。

2.如何提高多线程程序CPU的利用率。

简而言之:进程是一个容器,线程在进程这个容器中执行,是实际执行的代码。一个进程至少拥有一个线程,而这个线程通常被称之为主线程。线程除了必不可少的资源(程序计数器 一组寄存器和栈)之外,不拥有系统资源,所有进程内的线程共享分配给这个进程拥有的所有资源。

参考:

1.http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 进程与线程的一个简单解释

2.http://www.cnblogs.com/hazir/archive/2011/05/09/2447287.html   进程与线程的区别

3.http://jingyan.baidu.com/article/624e74598efcc834e9ba5a66.html  进程与线程的区别

时间: 2024-08-07 08:21:54

进程与线程的一些简单理解的相关文章

进程与线程的一个简单解释(转)

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

进程和线程的一个简单形象的解释

转眼暑假一过,2015年的校招即将开启大幕,身为计算机专业的朋友们,在面试中是不是经常会被问到一个问题:进程和线程的区别,今日偶然看到阮一峰的博客,他用一个很好的类比把他们解释的清晰易懂,会不会突然让大家有种豁然开朗的感觉呢? 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握,但下面的类比解释,是不是让你明白很多呢? 1.计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2.假定工厂的电力有限,一次只能供给一个车间使用.也就

对进程、线程、应用程序域的理解

前几天面试的一道题是谈谈进程.线程.应用程序域的区别,虽然能说上来几点,但感觉理解的很肤浅.很不透彻,闲暇时从书箱里翻出尘封已久的<操作系统>(还好,毕业时偶没舍得卖),翻了翻进程的那一章.看之前我列出了下面三个问题:1. 这些概念(技术)出现的背景以及要解决的问题 (要干什么)2. 它们之间的联系与区别3. 三者之间的发展脉络 进程的出现:(复习功课嘛,就把相关的内容都看看了,哎,都忘的差不多了)  进程由操作系统创建.管理的,离开了操作系统也就不谈什么进程了,先看看操作系统的四个基本特征:

Java &nbsp; &quot;线程任务&quot; 与 &quot;线程&quot; &nbsp; 概念的简单理解

分享一下自己对"线程任务","线程" 的简单理解:

进程与线程的一个简单解释

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

网上看来的:进程与线程的一个简单解释《转载》

原文作者: 阮一峰  发布时间: 2013-05-07 19:28 http://kb.cnblogs.com/page/176246/ 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1. 计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2. 假定工厂的电力有限,一次只能供给一个车间使用.也就是说,一个车间开工的时候,其他车间都必须停工.背后的含

[转]进程与线程的一个简单解释

计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2. 假定工厂的电力有限,一次只能供给一个车间使用.也就是说,一个车间开工的时候,其他车间都必须停工.背后的含义就是,单个CPU一次只能运行一个任务. 3. 进程就好比工厂的车间,它代表CPU所能处理的单个任务.任一时刻,CPU总是运行一个进程,其他进程处于非运行状态. 4. 一个车间里,可以有很多工人.他们协同完成一个任务. 5. 线程就好比车间里的工人.一个进程可以包括多个线程. 6. 车间的空间是工人们共享的,比如

进程和线程的一个简单的解释

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

【转】进程与线程的一个简单解释

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