python3创建多线程主要有下面两种方法:函数、类

1.函数创建多线程

python3中,提供了一个内置模块threading.Thread,可以很方便的创建多线程,threading.Thread()一般接收2个参数:

  • 线程函数名:要放置线程让其后台执行的函数,有用户自己定义,主要不要加()
  • 线程函数的参数: 线程函数名所需的参数,以tuple形式传入,如果不需要参数,可以不指定。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2019-01-23 22:27:22
# @Author  : cdl (1217096231@qq.com)
# @Link    : https://github.com/cdlwhm1217096231/python3_spider
# @Version : $Id$import time
from threading import Thread# 自定义线程函数
def my_threadfunc(name='python3'):for i in range(2):print("hello", name)time.sleep(1)# 创建线程01,不指定参数
thread_01 = Thread(target=my_threadfunc)
# 启动线程01
thread_01.start()# 创建线程02,指定参数,注意逗号不要少,否则不是一个tuple
thread_02 = Thread(target=my_threadfunc, args=('Curry',))
# 启动线程02
thread_02.start()

2.类创建多线程

首先,自定义一个类,对这个自定义的类有两个要求:1.必须继承threading.Thread这个父类。2.必须重写run()这个方法。这个run()方法相当于第一种方法中的线程函数,可以写自己需要的业务逻辑代码,在start()后将会调用。

import time
from threading import Threadclass MyThread(Thread):def __init__(self, name='Python3'):super().__init__()self.name = namedef run(self):for i in range(2):print("Hello", self.name)time.sleep(1)

3.多线程函数总结

t = Thread(target=func)# 启动子线程
t.start()# 阻塞子线程,待子线程结束后,再往下执行
t.join()# 判断线程是否在执行状态,在执行返回True,否则返回False
t.is_alive()
t.isAlive()# 设置线程是否随主线程退出而退出,默认为False
t.daemon = True
t.daemon = False# 设置线程名
t.name = "My-Thread"

python编程时光

python3创建多线程的几种方法相关推荐

  1. Python创建多线程的三种方法

    Python创建多线程的三种方法 thread模块函数式创建线程 继承threading类创建多线程 threading模块函数式创建线程 使用总结 thread模块函数式创建线程 调用thread模 ...

  2. Qt创建多线程的两种方法

    来源:https://github.com/czyt1988/czyBlog/tree/master/tech/QtThread 1.摘要 Qt有两种多线程的方法,其中一种是继承QThread的run ...

  3. 创建多线程有几种方法?如何创建线程?

    多线程有几种实现方法? 多线程实现又3种方法,其中前两中是常用的方法,推荐第二种方法,一个类应该在其修改或者加强是才继承 1.继承Thread类,重写run()方法,实例化该类,调用线程start() ...

  4. threading模块使用_threading简介(创建多线程的两种方法)★

    #####一.什么是threading? **threading是一个创建多线程的库(调用threading库的threading.Thread方法)** **语法为**```threading.Th ...

  5. 创建多线程的几种方法介绍

    目录 线程的概念及单线程多线程区别 创建多线程--继承线程类 创建多线程--实现Runnable接口 创建多线程--匿名类 总结 线程的概念及单线程多线程区别 首先要理解进程(Processor)和线 ...

  6. Java创建多线程的三种方法

    Java多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...

  7. java多线程同步的四种方法_java中实现多线程的两种方法

    java多线程有几种实现方法,都是什么?同步有几种实java中多线程的实现方法有两种:1.直接继承thread类:2.实现runnable接口:同步的实现方法有五种:1.同步方法:2.同步代码块:3. ...

  8. 创建线程的七种方法 (图解 全网最全最详细)

    本文创建于 2021年5月14日 作者:Xiang 参考文献:创建多线程的四种方法 创建线程的8种方法 创建匿名线程的5种方法 特别鸣谢 文章目录 1.什么是多线程 2.线程状态 3.线程同步方法 4 ...

  9. java多线程w3c_Java创建多线程的三种方式

    前言 这篇文章主要讲述线程的概念.组成.Java创建多线程的三种方式以及线程的类型. 线程概念 线程和进程的区别 **进程:**正在运行的程序,例如:你打开 的qq音乐.exe程序,其由PCB(进程控 ...

最新文章

  1. QEMU+KVM学习笔记
  2. Linux中使用export命令设置环境变量
  3. 怎么修改_PDF怎么修改文字?其实修改PDF内容很简单
  4. (53)进程结构体EPROCESS,擦除 DebugPort 实现反调试,ActiveProcessLinks 断链实现进程隐藏
  5. 笔记-项目沟通管理-沟通管理计划
  6. PHP7新特性 What will be in PHP 7/PHPNG
  7. JVM 学习四:类加载之双亲委派机制与沙箱安全机制
  8. 全新互联网四通手机震撼上市
  9. php工作流如何实现,工作流设计参考(包括PHP实现)
  10. 十个有趣的“大数据”经典数据挖掘案例
  11. Exchange2010删除指定账户指定主题邮件
  12. 电动自行车新国标正式实施 二季度数码市场需求好转
  13. 个人保研经历以及经验分享
  14. 带登录CSDN刷博客
  15. 工具应用——Chrome浏览器 F12控制台中文改成英文
  16. Android仿微信视频聊天窗口,Android仿微信语音聊天界面设计
  17. MLIR再深入 —— CodeGen 总结
  18. Tiled结合Unity实现瓦片地图
  19. rust拆除拆除指令_Rust 输出到命令行
  20. 考研数学之线性代数知识点

热门文章

  1. 《DNS与BIND(第5版)》——4.10 下一步是什么
  2. libsndfile动态库在VS2010下面的调用
  3. ios中tableview网封装(viewcontroller封装)常用的
  4. Java 实现 SSH 协议的客户端登录认证方式
  5. 业务系统性能问题分析和诊断
  6. 灵活运用分布式锁解决数据重复插入问题
  7. ThreadLocal为什么要使用弱引用和内存泄露问题
  8. 【Java】面试官灵魂拷问:if语句执行完else语句真的不会再执行吗?
  9. (万字长文)Spring的核心知识尽揽其中
  10. 哪些数据可以放进缓存?记录生产环境一次缓存评估的过程