Python多线程threading创建及使用方法解析


Posted in Python onJune 17, 2020

一、线程创建方法

1. 普通创建

import threading
def run(name):
  for i in range(3):
  print(name)
if __name__ == '__main__':
  t1 = threading.Thread(target=run, args=("t1",))
  t2 = threading.Thread(target=run, args=("t2",))
  t1.start()
  t2.start()

--------------------------------------------
t1
t2
t2
t1
t2
t1

2. 自定义线程类

import threading
class MyThread(threading.Thread):
  def __init__(self, name):
    super(MyThread, self).__init__()
    self.name = name
  def run(self):
    for i in range(3):
      print(self.name)
if __name__ == "__main__":
  t1 = MyThread("t1")
  t2 = MyThread("t2")
  t1.start()
  t2.start()

二、线程的使用

1.守护线程

子线程会随着主线程的结束而结束

t = threading.Thread(target=run, args=("t1",))
t.setDaemon(True) # 把子进程设置为守护线程,必须在start()之前设置
t.start()

2.主线程等待子线程结束

t = threading.Thread(target=run, args=("t1",))
t.setDaemon(True)
t.join() # 设置主线程等待子线程结束
t.start()

3.互斥锁

from threading import Thread,Lock
n = 10
def run():
  global n
  locker.acquire()
  n -= 1
  locker.release()

if __name__ == '__main__':
  locker = Lock()
  t1 = Thread(target=run)
  t2 = Thread(target=run)
  t1.start()
  t2.start()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python算法学习之计数排序实例
Dec 18 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
python使用requests.session模拟登录
Aug 09 Python
详解python中index()、find()方法
Aug 29 Python
python的scipy实现插值的示例代码
Nov 12 Python
python中必要的名词解释
Nov 20 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
Python的scikit-image模块实例讲解
Dec 30 Python
Numpy ndarray 多维数组对象的使用
Feb 10 Python
Python偏函数Partial function使用方法实例详解
Jun 17 #Python
详解Python IO口多路复用
Jun 17 #Python
基于keras中的回调函数用法说明
Jun 17 #Python
Python学习之路安装pycharm的教程详解
Jun 17 #Python
Python闭包及装饰器运行原理解析
Jun 17 #Python
浅谈Python协程
Jun 17 #Python
使用K.function()调试keras操作
Jun 17 #Python
You might like
php模板中出现空行解决方法
2011/03/08 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
layer 刷新某个页面的实现方法
2019/09/05 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现批量改文件名称的方法
2015/05/25 Python
zookeeper python接口实例详解
2018/01/18 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
python 调整图片亮度的示例
2020/12/03 Python
打架检讨书800字
2014/01/10 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
匿名检举信范文
2015/03/02 职场文书
汶川大地震感悟
2015/08/10 职场文书
环保建议书作文400字
2015/09/14 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技