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的urllib库提交WEB表单
Feb 24 Python
Python中用Spark模块的使用教程
Apr 13 Python
利用python批量给云主机配置安全组的方法教程
Jun 21 Python
Python continue继续循环用法总结
Jun 10 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
python字符串查找函数的用法详解
Jul 08 Python
python数据库编程 Mysql实现通讯录
Mar 27 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
如何使用pdb进行Python调试
Jun 30 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
ie6 动态缩略图不显示的原因
2009/06/21 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
php简单smarty入门程序实例
2015/06/11 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
vue实现购物车列表
2020/06/30 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
如何在python中执行另一个py文件
2020/04/30 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
英国假发网站:Hothair
2018/02/23 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
总经理职责
2013/12/22 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
计算机实训报告范文
2014/11/05 职场文书
2014年工商所工作总结
2014/12/09 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
2015教师节通讯稿
2015/07/20 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书