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中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
Python发送email的3种方法
Apr 28 Python
Python学习笔记之if语句的使用示例
Oct 23 Python
matplotlib绘制动画代码示例
Jan 02 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
python读取与处理netcdf数据方式
Feb 14 Python
Python中私有属性的定义方式
Mar 05 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
python二维图制作的实例代码
Dec 03 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
python实现寻找最长回文子序列的方法
2018/06/02 Python
利用python修改json文件的value方法
2018/12/31 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
python实现对变位词的判断方法
2020/04/05 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
优秀应届毕业生自荐信
2013/11/16 职场文书
酒店秘书求职信范文
2014/02/17 职场文书
开业庆典策划方案
2014/02/18 职场文书
行政主管职责范本
2014/03/07 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
2014年工人工作总结
2014/11/25 职场文书
后备干部推荐材料
2014/12/24 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
班主任高考寄语
2015/02/26 职场文书
公司庆典主持词
2015/07/04 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
六年级作文之家庭作文
2019/12/12 职场文书