python进程与线程

多任务

并发:任务交替去执行

并行:多核真正的一起执行

进程

特点

进行资源分配的基本单位

进程之间不共享全局变量,只是把全局变量拷贝一份到自己进程内的私有变量

导入进程包

# 1. 导入进程包
import multiprocessing
import time
import os

创建子进程

不带参数

# target: 进程执行的目标任务的函数名
dance_process = multiprocessing.Process(target=函数名)

带参数

# target: 进程执行的目标任务的函数名
# 以元组方式传参,元组里面的元素顺序要和函数的参数顺序保持一致
sub_process = multiprocessing.Process(target=show_info, args=("李四", 20))
# 以字典方式传参,字典里面的key要和函数里面的参数名保持一致,没有顺序要求
sub_process = multiprocessing.Process(target=show_info, kwargs={"age":20, "name": '王五'})
# 以字典+元组方式传参
sub_process = multiprocessing.Process(target=show_info, args=("冯七"), kwargs={"age": 20})

查看当前进程

multiprocessing.current_process()

获取当前进程的编号

dance_process_id = os.getpid()

获取当前进程的父进程编号

dance_process_parent_id = os.getppid()

摧毁进程

根据进程编号强制杀死指定进程

os.kill(dance_process_id, 9)

销毁子进程

子进程对象.terminate()

守护主进程,跟随主进程摧毁

进程对象.daemon = True

启动进程

进程对象.start()

线程

特点

线程之间共享全局变量

主线程会等待所有的子线程执行结束再结束

导入线程包

import threading
import time

互斥锁-线程大批量同时操作全局变量

创建全局锁

锁的对象名 = threading.Lock()

上锁

锁的对象名.acquire()

释放锁

锁的对象名.release()

创建子线程

不带参数

#daemon=True()守护主线程,跟随主线程摧毁
线程名 = threading.Thread(target=线程执行的函数名, daemon=True())

带参数

#daemon=True()守护主线程,跟随主线程摧毁
# 以元组方式传参,元组里面的元素顺序要和函数的参数顺序保持一致
sub_thread = threading.Thread(target=线程执行的函数名, daemon=True(), args=("李四", 20))
# 以字典方式传参,字典里面的key要和函数里面的参数名保持一致,没有顺序要求
sub_thread = threading.Thread(target=线程执行的函数名, daemon=True(), kwargs={"age":20, "name": '王五'})
# 以字典+元组方式传参
sub_threads = threading.Thread(target=线程执行的函数名, daemon=True(), args=("冯七"), kwargs={"age": 20})

查看当前线程

threading.current_thread()

启动线程

线程名.start()

主进程会等待子进程执行完成以后程序再退出

喜欢的亲可以关注点赞评论哦!以后每天都会更新的哦!本文为小编原创文章; 文章中用到的文件、安装包等可以加小编联系方式获得;
欢迎来交流小编联系方式VX:CXKLittleBrother 进入运维交流群

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

含义小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值