zoukankan
html css js c++ java
什么是进程And线程
原创
2015年02月01日 11:49:01
学习.net 时遇到了两个新词汇:进程和线程。书上的太深奥,就查了查资料,整合下,希望对大家有帮助。
【比喻】
:用手去抓苹果,很显然一根手指是不行,你需要至少两根手指才能抓起一个苹果。
在这里,用手抓苹果的事件就是一个进程。抓的过程可能需要多个手指协调,多个手指就是线程。
【进程】
:是操作系统中当前程序的一次执行。
要知道拥有单个CPU的电脑,在严格意义上,一个时间点上操作系统只能进 行同一个工作命令。由于计算机的运行速度快,在工作时可以运行一会A代码,运行一会B代码,交错运行,由于运算速度快,所以一般看 来它好像可以 同时进行多个程序--这就是多进程。同时开着QQ和飞信,这就是多进程。
线程:线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调 度的 执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。线程还 可以自己创建、撤销和切换。就像拿苹果,如果一根手指可以办到,那它就 是单线程,如果需要多根手指,那就是多线程。
进程和线程的区别:
(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进 程的地 址空间;而进程有自己独立的地址空间;
(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享 进程的 资源;
(3)线程是处理器调度的基本单位,但进程不是。
【概念拓 展】
:线程池和死锁。
线 程 池:程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间 来等待 事件发生。为了简化对这些线程的管理,.NET框架为每个 进程提供了一 个线程池,一个线程池有若干个等待操作状态,当一个等待操作完成 时,线程池中的辅助线程会执行回调函数。
死 锁:常被称为“死机“。是指两个或两个以上的进程在执行过程中,由于 竞争 资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它 们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁, 这些永远在互相等待的进程称为死锁进程。
造成死锁的原因有两种:
一是:同一时刻很多程序(进程)争相访问同一资源。
二是:线程对资源的访问没有按照资源占有和释放的顺序来进行。避免线程 死锁进行的方法有:
1. 让线程之间具有排斥性的访问资源,即同一时刻,一个资源只能 被一个线程占用和使用。
2.当一个线程在某一时刻已经拥有了某个资源,但它还继续申请另 外一个新的资源,但该资源已经被其他线程占用,那么就应该将 已经占有的资源进行释放,而不是让它一直等待下去。
3.当一个线程已获得某个资源的时候,应等到使用完这个资源(对 其释放完后),再允许其他线程对此资源进行访问。
4 . 当资源已经被某个线程占有时,应避免所有线程循环等待同一资 源。
查看全文
相关阅读:
Eclipse 项目导入 Android Studio 导致的乱码问题
Android 系统服务
Android 系统内核层与 Linux Kernel 的比较
DPI 计算及速查表
Android 引用文件(.db)的三种方式
阅读记录(2017年1月)
如何让电脑自动记录每次开关机时间
使用VS2010编译Qt 5.6.1过程记录
Windows无线网“无法连接到这个网络”的解决办法
怎样在Windows资源管理器中添加右键菜单以及修改右键菜单顺序
原文地址:https://www.cnblogs.com/lcword/p/8322393.html
最新文章
STM32f030f4p6 内部flash 打包读写
数据结构-二叉树(应用篇)-之二叉搜索树 C和C++的实现
数据结构-堆(应用篇)之堆排序法-C和C++的实现
数据结构-堆 C与C++的实现
数据结构-栈(应用篇)之快速排序法-C和C++的实现
数据结构-栈 C和C++的实现
词 tmp
ubuntu 20 安装后的使用记录
双硬盘 双系统 win10 + ubuntu 20 UEFI 相互独立
ubuntu 18.04 dash to dock bug
热门文章
ubuntu 18.04 / deepin 15.11 安装 vcs 2017 笔记
visual studio code for c++
eclipse gcc gdb 版本兼容问题导致无法 debug
设计模式 C++ 抽象工厂模式
设计模式 C++ 工厂模式
关于C++ new 的实验
Set "$USE_DEPRECATED_NDK=true" in gradle.properties to continue using the current NDK integration. 解决办法
Unity 多人网络连接
获取 BaiduMapSDKDemo SHA1 签名
Android 源码分析01_AsyncTask
Copyright © 2011-2022 走看看