多线程
线程的模块
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,父母