操作系统的进程和线程的相关知识的理解
一,预备知识:
(更好的阅读体验,请移步我的个人博客)
1,(计算机)程序:
计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。
2,进程:
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
3,程序与进程的总结:
程序是指令、数据及其组织形式的描述,进程是程序的一次运行过程的实体。
4,线程:
操作系统能够进行运算调度的最小单位。它被包涵在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程
中可以并发多个线程,每条线程并行执行不同的任务。在Unix System 中也被称为轻量进程,但轻量进程更多指内核线程,而把用户线程称为线程。
5,进程与线程的关系:
二、典型程序代表:
图形化窗口程序(文字处理软件、图形处理软件),服务器线程池解决方案。以文字处理程序为例说明:(涉及消息处理机制,各个操作系统解决方案略有不同,网络上很多资源)
三、以Android中的handler为例说明线程间通信问题:
handler的引入方便的解决了线程间通信的问题,当然你也可以自己封装一个类进行信息的传递(有handler也没必要了,毕竟不是程序设计的重点)。当一个apk文件运行后,他就会在内存中开辟一个内存空间,那么程序的所有线程将会共享这一块内存区域,共享其中的全局变量。每个线程也有自己的独立空间,通过上面的图可以看出来。线程可以访问程序的全局变量,但是,却不能直接访问其他的线程的变量(相对独立)。这个时候,设置一个全局的handler(可以在各个线程所在的一个类中设置,若设置成局部变量,一般也就不具备通信能力了),这样,各个线程可以访问他,使用他设置的存储访问变量的方法,然后,线程间的通信就变得简单了。
四、关于多线程资源竞争的理解:
多线程编程中对资源的合理分配是编程中不可忽略的一个部分,否则,各个线程对共享资源的不合理使用会很容易的造成程序运行结果的错误。了解进程与线程的关系可以很好地理解出现资源竞争的原因(对共享资源的使用),并能很好地解决这个问题,还有助于理解编程语言对于竞争资源采取的解决措施(例如Java中采用锁机制等)。
操作系统的进程和线程的相关知识的理解相关推荐
- C# 获取进程或线程的相关信息
参考文章:http://www.cnblogs.com/tommyli/p/4054296.html using System; using System.Collections.Generic; u ...
- 形象理解操作系统的进程与线程
在网上看到一个特别形象的举例,让我们理解操作系统中的进程与线程,以及线程同步方式中的"互斥锁"(Mutual exclusion,缩写 Mutex)."信号量" ...
- java进程与线程_Java多线程笔记(零):进程、线程与通用概念
前言 不积跬步,无以至千里:不积小流,无以成江海.在学习Java多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...
- Java多线程笔记(零):进程、线程与通用概念
前言 不积跬步,无以至千里:不积小流,无以成江海.在学习Java多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...
- 进程和线程基础知识全家桶,30 张图一套带走
前言 先来看看一则小故事 我们写好的一行行代码,为了让其工作起来,我们还得把它送进城(进程)里,那既然进了城里,那肯定不能胡作非为了. 城里人有城里人的规矩,城中有个专门管辖你们的城管(操作系统),人 ...
- 掌握Android中的进程和线程
进程和线程是现代网络操作系统的核心概念.Android作为一种优秀的.承袭Linux的移动操作系统,其进程和线程的概念是开发者和安全工作人员需要深入了解的问题.本文将详细介绍Android中的进程.线 ...
- c++ 等待子线程结束_进程和线程
1.进程的基本概念 进程简单说就是运行中的可执行文件.代码经过编译后生成二进制可执行文件,当运行该可执行文件时,代码被装载到内存中,然后CPU会执行程序中的指令. 有关进程调度,例如进程A,进程B,C ...
- 现代操作系统学习笔记二、进程和线程
进程和线程 操作系统相关的内容可以分为内存管理.进程和线程.死锁三个部分.本篇文章记录进程和线程部分. 内存管理 死锁 1. 进程 操作系统最核心的概念就是进程:它是对正在运行程序的一个抽象, ...
- 进程、线程基础知识全家桶,30 张图一套带走
前言 先来看看一则小故事 我们写好的一行行代码,为了让其工作起来,我们还得把它送进城(进程)里,那既然进了城里,那肯定不能胡作非为了. 城里人有城里人的规矩,城中有个专门管辖你们的城管(操作系统),人 ...
最新文章
- java super父类的父类_合理使用父类的财富——Java中的super
- JDK源码系列(5)-StringBuffer
- linux未使用磁盘空间满,linux磁盘空间用满的处理方法
- jQuery/Zepto的Bootstrap轮播图中图片自适应宽高并居中插件
- Lesson 4 Part 1 Newton's method
- HDU2516 取石子游戏【博弈】
- CCF201503-5 最小花费(30分)
- Django Step by Step 2010版(基于Django 1.1.1) 第五讲
- 用Python批量生成字幕图片用于视频剪辑
- 什么软件可以编辑PDF,PDF怎么拆分页面
- jpg/png格式的图片转换成eps格式
- rpc wmi 服务不可用_wmi服务是什么?wmi服务常见问题及解决技巧!
- 实验室新生成长指南[2.2.1] · 连接器
- xposed框架报错安装不上解决办法
- Winform contextmenustrip 隐藏图标区域
- 阅读“变形计”:一场偶然与非偶然的相遇
- 看我如何自制安全的远程控制工具
- 文件服务器mfs,MFS 分布式文件存储系统
- 魔兽争霸3的MapHack制作教程(二)去除战争迷雾
- 创世战车服务器维护,【创世战车】更新公告