当前位置:网站首页>2020-08-29: process thread differences, in addition to the inclusion relationship, the underlying details?
2020-08-29: process thread differences, in addition to the inclusion relationship, the underlying details?
2020-11-06 21:50:00 【Fuda Dajia architect's daily question】
Fogo's answer 2020-08-29:
1. Fundamental difference
process : The minimum unit of resource scheduling .
Threads :CPU Scheduling minimum unit .
2. address space
process : The process has its own address space , Every time a process is started , The system will allocate address space to it , Create data tables to maintain code snippets 、 Stack and data segments .
Threads : Threads have no independent address space , Threads of the same process share the address space of this process .
3. Memory and files share
process : When you create a process ,mm_struct It will point to another address , Use copy-on-write replicate .
Threads : And when you create a thread ,mm_struct Will point to the same virtual memory area of the parent process , So there will be resource conflicts .
Regardless of thread and process , stay linux The creation in is very fast .
4. block
process : Process control block PCB. A process uses ProcessControlBlock On the one entry Record its basic information (pid,state,priority etc. ), The process will be allocated a logical memory address space by the operating system , That is, it has a memory space for use .
Threads : Thread control block TCB. A thread is a unit within a process that is responsible for executing a task , This unit uses ThreadControlBlock On the one entry Record its basic information (tid,state,priority,counter,register info etc. ), This unit has its own stack For mission execution .
5. overhead
process : Process execution cost is high .
Threads : Low thread execution cost .
6. Switching speed
process : Switching is relatively slow .
Threads : Switching is relatively fast .
版权声明
本文为[Fuda Dajia architect's daily question]所创,转载请带上原文链接,感谢
边栏推荐
- html+ vue.js Implementing paging compatible IE
- All the way, I was forced to talk about C code debugging skills and remote debugging
- ES6 learning notes (4): easy to understand the new grammar of ES6
- A small goal in 2019 to become a blog expert of CSDN
- STM32F030K6T6兼容替换灵动MM32F031K6T6
- A concise tutorial for Nacos, ribbon and feign
- The legality of IPFs / filecoin: protecting personal privacy from disclosure
- 预留电池接口,内置充放电电路及电量计,迅为助力轻松搞定手持应用
- The method of local search port number occupation in Windows system
- Zero basis to build a web search engine of its own
猜你喜欢

Python basic data type -- tuple analysis

Basic usage of Vue codemirror: search function, code folding function, get editor value and verify in time

NAND FLASH的接口控制设计

Zero basis to build a web search engine of its own

Pn8162 20W PD fast charging chip, PD fast charging charger scheme

How does cglib implement multiple agents?

2020-08-15:什么情况下数据任务需要优化?

list转换map(根据key来拆分list,相同key的value为一个list)

Exclusive interview with Alibaba cloud database for 2020 PostgreSQL Asia Conference: Zeng Wenjing

Unexpected element.. required element
随机推荐
Take you to learn the new methods in Es5
【涂鸦物联网足迹】物联网基础介绍篇
The role of theme music in games
超高频RFID医疗血液管理系统应用
[learning] interface test case writing and testing concerns
Git remote library rollback specified version
Pn8162 20W PD fast charging chip, PD fast charging charger scheme
Can you do it with only six characters?
Interviewer: how about shardingsphere
2020-09-09:裸写算法:两个线程轮流打印数字1-100。
Vue communication and cross component listening state Vue communication
统计项目代码行数
实验一
Detect certificate expiration script
How does filecoin's economic model and future value support the price of fil currency breaking through thousands
Js数组-数组的用法全在这里(数组方法的重构、数组的遍历、数组的去重,数组的判断与转换)
How to make characters move
2020-08-24:什么是小文件?很多小文件会有什么问题?很多小文件怎么解决?(大数据)
STM32F030F4P6兼容灵动微MM32F031F4P6
移动端像素适配方案