OS之进程和线程
1. 线程是程序执行流的最小单元。
一个标准的线程由线程ID,当前指令指针PC,寄存器集合和堆栈组成。
2. 通常意义上,一个进程由一个到多个线程组成,各个线程之间共享程序的的内存空间,包括代码段、数据段和堆等,以及一些进程级的资源,如打开文件和信号。
3. 使用多线程的原因有以下五个方面
- 某个操作可能会陷入长时间等待,等待的线程会进入睡眠状态而无法继续执行。多线程执行可以有效利用等待的时间。
- 某个操作会消耗大量的时间,如果只有一个线程,程序和用户之间的交互会中断,多线程可以让一个线程负责交互,另一个负责计算。
- 程序逻辑本身要求并发执行,如多端下载软件Bittorrent
- 多CPU或多核计算机本身具备同时执行多个线程的能力,单线程无法全面发挥计算机的全部优势。
- 相对于多进程应用,多线程在数据共享方面效率高很多。
OS之进程和线程的更多相关文章
- [OS] Linux进程、线程通信方式总结
转自:http://blog.sina.com.cn/s/blog_64b9c6850100ub80.html Linux系统中的进程通信方式主要以下几种: 同一主机上的进程通信方式 * UNIX进程 ...
- OS之进程管理---多线程模型和线程库(POSIX PTread)
多线程简介 线程是CPU使用的基本单元,包括线程ID,程序计数器.寄存器组.各自的堆栈等,在相同线程组中,所有线程共享进程代码段,数据段和其他系统资源. 传统的的单线程模式是每一个进程只能单个控制线程 ...
- 【好文推荐】黑莓OS手册是如何详细阐述底层的进程和线程模型的?
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- [OS] 操作系统-进程线程-经典面试笔试题
题目转自:http://blog.csdn.net/morewindows/article/details/7392749 ·线程的基本概念.线程的基本状态及状态之间的关系? 线程,有时称为轻量级进程 ...
- 《Tsinghua os mooc》第11~14讲 进程和线程
第十一讲 进程和线程 进程 vs 程序 程序 = 文件 (静态的可执行文件) 进程 = 执行中的程序 = 程序 + 执行状态 进程的组成包括程序.数据和进程控制块 同一个程序的多次执行过程对应为不同进 ...
- C# - 多线程 之 进程与线程
并行~并发 并发 Concurrency,逻辑上的同时发生,一个处理器(在不同时刻或者说在同一时间间隔内)"同时"处理多个任务.宏观上是并发的,微观上是按排队等待.唤醒.执行的步骤 ...
- Python之路第一课Day9--随堂笔记之二(进程、线程、协程篇)
本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...
- python之进程与线程
什么是操作系统 可能很多人都会说,我们平时装的windows7 windows10都是操作系统,没错,他们都是操作系统.还有没有其他的? 想想我们使用的手机,Google公司的Androi ...
- [转载]了解Linux的进程与线程
本文转自Tim Yang的博客http://timyang.net/linux/linux-process/ .对于理解Linux的进程与线程非常有帮助.支持原创.尊重原创,分享知识! 上周碰到部署在 ...
随机推荐
- Apache和PHP结合、Apache默认虚拟主机
5月28日任务 课程内容: 11.14/11.15 Apache和PHP结合11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 到目前为止虽然安装好了A ...
- Oracle SCN 详解
一.简介 scn,system change number 在某个时间点定义数据库已提交版本的时间戳标记,Oracle为每个已提交事务分配一个唯一的scn,scn值是对数据库进行更改的逻辑时间点.sc ...
- Maven项目多环境之间的配置文件的切换
前言:对于一个项目,开发和生产环境之间会使用不同的配置文件,最简单的例子就是数据库连接池的配置了.当然,可以在打包上线前对配置文件进行替换,不过这也太low了吧. 简单的pom.xml中的配置内容 比 ...
- 【nodejs原理&源码赏析(6)】深度剖析cluster模块源码与node.js多进程(下)
[摘要] cluster模块详解 示例代码托管在:http://www.github.com/dashnowords/blogs 阅读本章需要先阅读本系列前两章内容预热一下. 一. 引言 前两篇博文中 ...
- Eclipse for Tricore 的安装方法
1.安装JDK32位版 2.安装Eclipse for Tricore 32位版(应该也只有32位的) 3.OK(如果打开Tricore提示找不到JDK的话,在网上搜索如何配置JDK,修改环境变量) ...
- python scapy的使用总结
基本命令 ls() List all available protocols and protocol options lsc() List all available scapy command f ...
- 基于 SOA 架构,创建 ego-search-web 项目-solr集群-zookeeper集群
项目架构 Ego-search-web 服务的消费者,ego-rpc 服务提供者 建立 ego-search-web 项目 继承:ego 依赖:ego-common ego-rpc-service ...
- rbac结合ssm实现权限分配和管理
RBAC(Role-Based Access Control )基于角色的访问控制. RBAC 认为权限的过程可以抽象概括为: 判断[Who 是否可以对 What 进行 How 的访问操作(Opera ...
- 香港6合彩数据分析 V1.0
最近写了个VBA小工具,分析香港6合彩中奖的概率,得出的结果不尽人意,但至少不会让你赔钱,嘿嘿! 点此链接获取 密码:3u65
- CF296C Greg and Array 查分数组
题目链接:http://codeforces.com/problemset/problem/296/C 题意:给你n.m.k,表示n个数a[i],m个对数的操作,k个对操作的操作.m个操作:数a[l] ...