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函数帮助查询小工具
Mar 13 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
用python制作游戏外挂
Jan 04 Python
python自动化报告的输出用例详解
May 30 Python
详解js文件通过python访问数据库方法
Mar 03 Python
Python解析多帧dicom数据详解
Jan 13 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 Python
python查看矩阵的行列号以及维数方式
May 22 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
Jun 10 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
python爬虫使用scrapy注意事项
Nov 23 Python
pandas中DataFrame重置索引的几种方法
May 24 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
xml+php动态载入与分页
2006/10/09 PHP
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
YII框架关联查询操作示例
2019/04/29 PHP
php写app用的框架整理
2019/09/29 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
jQuery解析json格式数据示例
2018/09/01 jQuery
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
房屋维修协议书范本
2014/09/25 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
总经理岗位职责
2015/02/04 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
Python数据结构之队列详解
2022/03/21 Python