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生成url短链接的方法
May 04 Python
python记录程序运行时间的三种方法
Jul 14 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
Python发送http请求解析返回json的实例
Mar 26 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
Django REST framework 分页的实现代码
Jun 19 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
python爬虫 基于requests模块的get请求实现详解
Aug 20 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
django haystack实现全文检索的示例代码
Jun 24 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 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 中文处理函数集合
2008/08/27 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
Prototype Date对象 学习
2009/07/12 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
阿里旅行:飞猪
2017/01/05 全球购物
PHP面试题及答案二
2015/05/23 面试题
简述安装Slackware Linux系统的过程
2012/05/08 面试题
青年文明号事迹材料
2014/01/18 职场文书
驾驶员安全责任书
2014/07/22 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
党员作风建设自查报告
2014/10/23 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python