当前位置:网站首页>Understanding of processes, threads, coroutines, synchronization, asynchrony, blocking, non blocking, concurrency, parallelism, and serialization
Understanding of processes, threads, coroutines, synchronization, asynchrony, blocking, non blocking, concurrency, parallelism, and serialization
2022-07-06 04:09:00 【YZL40514131】
One 、 process
1、 Open a browser , Is to start a browser process .
2、 A running program ( Code ) It's a process , No running code is called a program .
3、 Process is the smallest unit of system resource allocation , Processes have their own independent memory space , All inter process data is not shared , Spending big .
4、 A process is the basic unit of executing a task , It is also the basic unit for the operating system to perform tasks . The process contains a collection of program instructions and related resources .
5、 Create a process : Import first multiprocessing Medium Process
6、 Do not share global variables between processes
p = Process(target=XXX,args=(tuple,),kwargs={key:value})
target = XXX Specified task function , Don't have to add (),
args=(tuple,)
kwargs={key:value} Parameters passed to the task function
import os
from multiprocessing import Process
import time
def pro_func(name):
for i in range(5):
print(f' Subprocesses {
name+str(i)} Start execution ')
time.sleep(2)
print(f' Subprocesses {
name+str(i)} End to perform ')
if __name__ == '__main__':
p=Process(target=pro_func,args=('kobe',))
p.start()
print(' The execution of the main process is over ')
Two 、 Threads
1、 In a process , At least one thread , This thread is the main thread of the current process ,
2、 Thread is the basic unit of executing tasks in a process
3、 Thread cannot exist independently , Dependent processes exist
4、 Multiple threads share memory ( Data sharing , Share global variables ), Thus greatly improving the efficiency of the program .
5、 Multithreading may cause data chaos or even deadlock
6、 Create thread : Import first threading Medium Thread
import threading
import time
def thread():
for i in range(5):
print(f' Sub thread {
i} Start execution ')
time.sleep(2)
print(f' Sub thread {
i} End to perform ')
if __name__ == '__main__':
t=threading.Thread(target=thread)
t.start()
print(' Main thread execution completed ')
3、 ... and 、 coroutines
1、 Coroutine is a lightweight thread in user mode , The scheduling of the process is completely controlled by the user ; The benefit of this is that the performance has been greatly improved , It doesn't consume resources like thread switching .
2、 Synergetics generally use gevent library
3、 A thread can also have multiple coroutines
Four 、 Sync
Multiple tasks are executed in sequence , Only after one execution can the next be executed .
5、 ... and 、 asynchronous
Relative to synchronization , Synchronization is performed sequentially , Asynchrony is independent of each other , Continue to do your own thing while waiting for an event , Don't wait for this event to complete before you work . Threads are a way to achieve asynchrony , Asynchrony means that the main thread calling a method does not need to wait for another thread to complete synchronously , So that the main thread can do other things .
6、 ... and 、 Blocking
If the caller gets stuck , The caller cannot continue to execute , That is, the caller is blocking .
For example, the blocking function when multithreading executes tasks t.join(), The main route is blocked first , Wait for the sub thread to finish executing , End of main thread execution .
import threading
import time
def thread():
for i in range(5):
print(f' Sub thread {
i} Start execution ')
time.sleep(2)
print(f' Sub thread {
i} End to perform ')
if __name__ == '__main__':
t=threading.Thread(target=thread)
t.start()
t.join()
print(' Main thread execution completed ')
7、 ... and 、 Non blocking
If it doesn't get stuck , Can continue to execute , That means non blocking .
8、 ... and 、 Concurrent
1、 Only one instruction can be executed at the same time , But multiple process instructions are executed in rapid rotation , It has the effect of multiple processes executing at the same time , But at the micro level, it is not carried out at the same time , Just divide the time into periods , Make multiple processes execute alternately quickly .
2、 The key to concurrency is your ability to handle multiple tasks , Not necessarily at the same time .
Nine 、 parallel
1、 At the same time , There are multiple instructions executing on multiple processors at the same time . So whether from the micro or from the macro point of view , Both are carried out together .
2、 The key to parallelism is your ability to handle multiple tasks at the same time .
Ten 、 Serial
Simply put, you can only do one thing at a time , And it has to be executed in sequence , The later code segment can only be executed after the task of the previous code segment is executed .
边栏推荐
- Mysql数据库慢sql抓取与分析
- Brief tutorial for soft exam system architecture designer | general catalog
- 【FPGA教程案例11】基于vivado核的除法器设计与实现
- math_ Derivative function derivation of limit & differential & derivative & derivative / logarithmic function (derivative definition limit method) / derivative formula derivation of exponential functi
- Python book learning notes - Chapter 09 section 01 create and use classes
- Yyds dry goods inventory web components series (VII) -- life cycle of custom components
- 【PSO】基于PSO粒子群优化的物料点货物运输成本最低值计算matlab仿真,包括运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
- 使用JS完成一个LRU缓存
- Global and Chinese markets for patent hole oval devices 2022-2028: Research Report on technology, participants, trends, market size and share
- Alibaba testers use UI automated testing to achieve element positioning
猜你喜欢
Comprehensive ability evaluation system
How to solve the problem of slow downloading from foreign NPM official servers—— Teach you two ways to switch to Taobao NPM image server
[FPGA tutorial case 11] design and implementation of divider based on vivado core
Esp32 (based on Arduino) connects the mqtt server of emqx to upload information and command control
Thread sleep, thread sleep application scenarios
math_ Derivative function derivation of limit & differential & derivative & derivative / logarithmic function (derivative definition limit method) / derivative formula derivation of exponential functi
DM8 archive log file manual switching
Alibaba testers use UI automated testing to achieve element positioning
MySql數據庫root賬戶無法遠程登陸解决辦法
C#(二十八)之C#鼠标事件、键盘事件
随机推荐
Security xxE vulnerability recurrence (XXe Lab)
Fundamentals of SQL database operation
MySql数据库root账户无法远程登陆解决办法
Viewing and verifying backup sets using dmrman
51nod 1130 n factorial length V2 (Stirling approximation)
2/13 review Backpack + monotonic queue variant
Développement d'un module d'élimination des bavardages à clé basé sur la FPGA
Interface idempotency
Mathematical modeling regression analysis relationship between variables
10個 Istio 流量管理 最常用的例子,你知道幾個?
Ybtoj coloring plan [tree chain dissection, segment tree, tarjan]
《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
Stc8h development (XII): I2C drive AT24C08, at24c32 series EEPROM storage
Facebook and other large companies have leaked more than one billion user data, and it is time to pay attention to did
P3033 [usaco11nov]cow steelchase g (similar to minimum path coverage)
2/11 matrix fast power +dp+ bisection
Basic knowledge of binary tree, BFC, DFS
Take you to wechat applet development in 3 minutes
Brief tutorial for soft exam system architecture designer | general catalog
Conditionally [jsonignore]