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 相关文章推荐
Python3 能振兴 Python的原因分析
Nov 28 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
python3操作mysql数据库的方法
Jun 23 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
Django实现表单验证
Sep 08 Python
Python实战购物车项目的实现参考
Feb 20 Python
Django中使用Whoosh进行全文检索的方法
Mar 31 Python
python时间序列按频率生成日期的方法
May 14 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
Python读写操作csv和excle文件代码实例
Mar 16 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中CI操作多个数据库的代码
2012/07/05 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
python numpy存取文件的方式
2020/04/01 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python取均匀不重复的随机数方式
2019/11/27 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
html5弹跳球示例代码
2013/07/23 HTML / CSS
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
酒店总经理岗位职责
2014/03/17 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
家长反馈意见及建议
2015/06/03 职场文书
看上去很美观后感
2015/06/10 职场文书
怎样写工作总结啊!
2019/06/18 职场文书