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 17 Python
Python实现按特定格式对文件进行读写的方法示例
Nov 30 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
django的autoreload机制实现
Jun 03 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
Oct 15 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 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 socke 向指定页面提交数据
2008/07/23 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
token 机制和实现方式
2020/12/15 Javascript
Python切换pip安装源的方法详解
2016/11/18 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
数据库面试要点基本概念
2013/10/31 面试题
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
临床医学专业学生的自我评价分享
2013/11/21 职场文书
文字自荐书范文
2014/02/10 职场文书
班班通项目实施方案
2014/02/25 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
安全月活动总结
2014/05/05 职场文书
委托书怎样写
2014/08/30 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
个人借条范本
2015/05/25 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
总结Java对象被序列化的两种方法
2021/06/30 Java/Android