Program Thread 和 Process的不同点
- Thread is for execution
- Kernel level thread, physical parallelism
- Cores Divide work amount of physical cores / CPU
- Load balancing
- Data Splitting
- Which will lead to data dependency coodination and message passing
- Bad thing for multiple cores is this is hard for Testing and debugging
- User level thread only have logical parallelism
- Example, Read from user input is blocking; we have to work on it to make it logical parallelism
- Kernel level thread, physical parallelism
- Process is for resource
What is Program
Program是一个存在disk中且断电或重启不会消失可执行文件,存储在存储媒介中,以实体文件的形态存在
A program is an executable file residing on the disk (secondary storage) in a directory. It is also termed as a set of instructions stored in the secondary storage device that are intended to carry out a specific job. It is read into the primary memory and executed by the kernel.
本文来自 Abbymz 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Abby210/article/details/51225034?utm_source=copy
或者可以称之为persistently 的文件,断电也不会消失。
What is Process ?
当program被执行之后,就变成了进程。执行者的权限和程序所需的资料都会载入到内存中,OS会给予这些内存单元一个pid。
Unit of resource ownership (allocation) and unit of protection
| text, Code of Programmer |
|---|
| Data |
| Heap |
| Stack |
一个program可以创建出很多个进程,关机或停电会死掉
Process的组成
- Permission user or kernel
- Priority
- Files
- ID
- PID
- PPID
- Folk
- UserID
- Protected access to
- Processors
- other process
- Files
- I/O
- A virtual space that holds the process image
What is Thread ?
线程称之为Lightweight Process,一个进程可以有多个线程,他们共享一片内存
- has access to the same data
- When one thread alters a data, other threads see the results
- When one thread open a file, other threads can also access that file.
Unit of dispatch or unit of execution
多线程的好处
- 开启线程要快于开启进程
- 关闭线程要快于关闭进程
- 切换线程要快于切换进程
- 线程可以相互通讯
什么叫Multithreading
The ability of an OS to support multiple, concurrent paths of execution within a single process.
Process and thread states
- Ready
- new process usually set as read state
- At this time scheduler is not pick it up yet.
- If it get picked by scheduler and running in CPU, then goes to Running State
- If it get external event, something like lock, then goes to block
- Running,
- Scheduler picked it up, and CPU is run this instruction
- If it get finished, goes to Exit states
- If it get IO interrupts, goes to ready, blocked status
- If it can not get the resource which is conflict with other process, goes to deadlock
- Scheduler picked it up, and CPU is run this instruction
- Block
- If it lock (wait able ) is release, or IO is completed, then goes to Ready
- Deadlock
- Exit (Zombie State)
- When process is finished, waiting for cleaning up
How Deadlock happen ?
- When process A has resource a, and it need resource b from process B.
- At the same time, process B need resource a from A
- Then those process gonna have deadlock due to both of them can get the resource they need.
Reference
https://slideplayer.com/slide/5219996/
想要看到更多玮哥的学习笔记、考试复习资料、面试准备资料?想要看到IBM工作时期的技术积累和国外初创公司的经验总结?
敬请关注:
Program Thread 和 Process的不同点的更多相关文章
- MS SQL错误:SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems
早晨宁波那边的IT人员打电话告知数据库无法访问了.其实我在早晨也发现Ignite监控下的宁波的数据库服务器出现了异常,但是当时正在检查查看其它服务器发过来的各类邮件,还没等到我去确认具体情 ...
- [CareerCup] 16.1 Thread and Process 线程和进程
16.1 What's the difference between a thread and a process? 进程Process是程序执行时的一个实例.一个进程是被分配系统资源的独立单元,每个 ...
- It is not based on WSGI, and it is typically run with only one thread per process.
Tornado Web Server — Tornado 5.1.1 documentation http://www.tornadoweb.org/en/stable/
- Linux Process/Thread Creation、Linux Process Principle、sys_fork、sys_execve、glibc fork/execve api sourcecode
相关学习资料 linux内核设计与实现+原书第3版.pdf(.3章) 深入linux内核架构(中文版).pdf 深入理解linux内核中文第三版.pdf <独辟蹊径品内核Linux内核源代码导读 ...
- process vs thread
process vs thread http://blog.csdn.net/mishifangxiangdefeng/article/details/7588727 6.进程与线程的区别:系统调度是 ...
- Difference between Process and thread?
What are the differences between a process and a thread? How are they similar? How can 2 threads com ...
- 一个进程(Process)最多可以生成多少个线程(Thread)
1.进程中创建线程的限制 默认情况下,一个线程的栈要预留1M的内存空间,而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程,但是内存当然不可能完全拿来作线程的栈,所以实际 ...
- 如何执行一条命令在C#里面。Process
Download source - 4.15 KB Introduction It is normal practice to open the Windows command prompt and ...
- How to Analyze Java Thread Dumps--reference
原文地址:http://architects.dzone.com/articles/how-analyze-java-thread-dumps The Performance Zone is pres ...
随机推荐
- Scala 枚举介绍及深入应用
本文详细地总结了Scala枚举的几种实现方式,对我们更好地进行函数式编程有很好地指导和帮助. Scala 枚举示例和特性 枚举(Enumerations)是一种语言特性,对于建模有限的实体集来说特别有 ...
- react源码总览(翻译)
用react也有段时间了, 是时候看看人家源码了. 看源码之前看到官方文档 有这么篇文章介绍其代码结构了, 为了看源码能顺利些, 遂决定将其翻译来看看, 小弟英语也是半瓢水, 好多单词得查词典, 不当 ...
- KnockoutJS知识规整目录
对于Web开发来讲,前端接触是避免不了的,特别是对于中小公司,没有严格的职位区分,前后端人员互相身兼是常有的事情,使用一些好的框架,能够帮助我们快速开发并完成需要的功能,对于前端的JS框架来讲MVVM ...
- 国内开源社区巨作AspectCore-Framework入门
前些天和张队(善友),lemon(浩洋),斌哥(项斌)等MVP大咖一块儿吃饭,大家聊到了lemon名下的AOP这个项目,我这小白听得一脸懵逼,后面回来做了一下功课,查了下资料,在lemon的Githu ...
- WPF获取原始控件样式。
要获取WPF控件的原始样式,需要我们安装Blend for Visual Studio. 然后,我们打开Blend for Visual Studio,创建一个WPF项目. 然后,我们向页面拖动一个B ...
- MySQL8.0新特性——支持原子DDL语句
MySQL 8.0开始支持原子数据定义语言(DDL)语句.此功能称为原子DDL.原子DDL语句将与DDL操作关联的数据字典更新,存储引擎操作和二进制日志写入组合到单个原子事务中.即使服务器在操作期间暂 ...
- C语言超级搞笑的代码,冷笑话我们程序员也会讲的啊!
百年修得足下点击本文 欢迎来到"C语言基础"专题,今天我们放松一天,不学习知识,来看下大千世界的千奇百怪的C语言代码,你见过那些? 1.关于随机数这回事 这个随机数有点意思哦. 2 ...
- 结合Mybatis源码看设计模式——外观模式
定义 提供了一个统一的接口,用来访问子系统中一群接口 适用场景 子系统复杂,增加外观模式提供简单调用接口 构建多层系统结构,用外观对象作为每层入口 详解 外观模式,主要理解外观.通俗一点可以认为这个模 ...
- vue项目中vux的使用
vux VUX 是基于 WeUI 和 Vue.js 的 移动端 UI 组件库,提供丰富的组件满足移动端(微信)页面常用业务需求. 在vue-cli中使用步骤如下: 1.安装: npm i vux -S ...
- 海康相机SDK二次开发只有视频无声音问题
海康SDK相信做企业开发的的同仁,在项目中经常会用到,毕竟使用范围这么广. 本次就开发遇到的奇葩问题来说明一下我们的解决方案. 场景 虽然海康有4200客户端,但是对于高度定制化的项目,肯定不能再使用 ...