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实现人人网登录示例分享
Jan 19 Python
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
基于Python实现对PDF文件的OCR识别
Aug 05 Python
Python制作钉钉加密/解密工具
Dec 07 Python
python使用KNN算法手写体识别
Feb 01 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
python3判断url链接是否为404的方法
Aug 10 Python
快速排序的四种python实现(推荐)
Apr 03 Python
python3中property使用方法详解
Apr 23 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 03 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
js style动态设置table高度
2014/10/21 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
python文件名和文件路径操作实例
2017/09/29 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
详解python运行三种方式
2019/05/13 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
创建省级文明单位实施方案
2014/02/27 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript