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脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
Python SQLite3简介
Feb 22 Python
python字符串常用方法
Jun 14 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
python模糊图片过滤的方法
Dec 14 Python
python实现银联支付和支付宝支付接入
May 07 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
如何将json数据转换为python数据
Sep 04 Python
Python实现视频自动打码的示例代码
Apr 08 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 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来检测proxy
2006/10/09 PHP
一个简单的PHP&MYSQL留言板源码
2020/07/19 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
js 小贴士一星期合集
2010/04/07 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
深入解析Python中的变量和赋值运算符
2015/10/12 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
Python内置异常类型全面汇总
2020/05/28 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
大一期末自我鉴定
2013/12/13 职场文书
合作意向协议书范本
2014/03/31 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
入团介绍人意见范文
2015/06/04 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS