第三十一次总结:多进程vs多线程

多线程

线程的模块

import threading

 

thread
英 [θred]   美 [θred]  
n.
(棉、毛、丝等的)线;线索;脉络;思绪;思路;贯穿的主线;线状物;细细的一条
v.
穿(针);纫(针);穿过;(使)穿过;通过;穿行;穿成串;串在一起

 

 

线程对象的创建

创建一个线程,指向的函数,不接收参数的情况

t = threading.Thread(target=函数名)

创建一个线程,指向的函数,收参数的情况

t = threading.Thread(target=函数名, args=(实参1,))

 

target
英 [ˈtɑːɡɪt]   美 [ˈtɑːrɡɪt]  
n.
目标;指标;(攻击的)目标,对象;靶;靶子
v.
把…作为攻击目标;把…作为批评的对象;面向,把…对准(某群体)

 

让线程对象t开始工作

t.start()

 

start
英 [stɑːt]   美 [stɑːrt]  
v.
开始,着手,动手(做或使用);(使)发生,开始进行;开动;发动;启动
n.
开头;开端;开始;起始优势;良好的基础条件

 

主线程与子线程的关系

生命周期

我们的py文件运行起来的时候,就会有一个主线程

当子线程对象创建后,当子线程对象运行时,才会创造出来新的线程,叫做子线程

子线程如果代码没有运行结束,主线程是会等待子线程的

直接子线程全部运行完毕

主线程才会结束

 

进程与线程的关系

进程的主要功能

分配资源

线程的主要功能

执行任务

包含关系

进程包含线程

每开一个进程出来,都必然会有一个主线程

进程提供了资源(内存空间)

线程主要执行任务

 

 

 

多进程

多进程的模块

import multiprocessing

多种方式前进

 

创建一个进程对象

p = multiprocessing.Process(target=函数名)

 

让进程对象p开始工作

p.start()

 

multi
英 ['mʌlti]   美 [ˈmʌlti]  
n.
多种;多数

 

process
英 [ˈprəʊses , prəˈses]  美 [ˈprɑːses , prəˈses]  
n.
(为达到某一目标的)过程;进程;(事物发展,尤指自然变化的)过程,步骤,流程;做事方法;工艺流程;工序
v.
加工;处理;审阅,审核,处理(文件、请求等);数据处理
v.
列队行进;缓缓前进
第三人称单数: processes 复数: processes 现在分词: processing 过去式: processed 过去分词: processed
派生词: processing n.
记忆技巧:pro 向前 + cess 行走,前进 → 向前走的〔历程〕→ 过程
process的现在分词

 

ing代表正在进行某个事件

eat,吃

eating,正在吃

thread

threading

 

进程对象p的等待连接

p.join()

功能特性:

当代码读到这个命时

解释器会关注一下进程对象p它是否已经执行完成了

如果,没有执行完成,卡住

直到p的代码全部执行结束,才会通

 

 

查看进程的id

查看当前进程的id

os.getpid()

 

get,得到
p,process,进程
id,编号

 

查看当前进程的父进程id

os.getppid()
p,parent,父母

 

 

判断进程对象p是否存活

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值