返回顶部
首页 > 资讯 > 后端开发 > Python >Python3 多线程讲解
  • 679
分享到

Python3 多线程讲解

多线程 2023-01-31 08:01:00 679人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

前言 python3 线程中常用的两个模块为•_thread•threading(推荐使用) thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 python3 中不能再使用”thread” 模块。为了兼容性,

前言

python3 线程中常用的两个模块为
•_thread
•threading(推荐使用)

thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 python3 中不能再使用”thread” 模块。为了兼容性,Python3 将 thread 重命名为 “_thread”。

_thread

Python中使用线程有两种方式:函数或者用类来包装线程对象。
函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下:
_thread.start_new_thread ( function, args[, kwargs] )1

参数说明:
•function - 线程函数。
•args - 传递给线程函数的参数,他必须是个tuple类型。
•kwargs - 可选参数。
1 #!/usr/bin/python3
2 # -- coding: UTF-8 --
3
4 # Python3 多线程
5
6 import _thread
7 import time
8 import sys
9
10 # 为线程定义一个函数
11
12 def print_time(threadName,delay):
13 count=0
14 while count<5:
15 time.sleep(delay)
16 count+=1
17 print("%s:%s"%(threadName,time.ctime(time.time())))
18
19 # 创建两个线程
20 try:
21 _thread.start_new_thread(print_time,("Thread-1",2,))
22 _thread.start_new_thread(print_time,("Thread-2",4,))
23 except:
24 print("Error:无法启动线程",sys.exc_info())
25
26 while 1:
27 pass

threading
1 #!/usr/bin/python3
2 # -- coding: UTF-8 --
3
4 # python3 多线程
5
6 import threading
7 import time
8
9 exitFlag=0
10
11 def print_time(threadName,delay,counter):
12 while counter:
13 if exitFlag:
14 threadName.exit()
15 time.sleep(delay)
16 print("%s:%s"%(threadName,time.ctime(time.time())))
17 counter-=1
18
19 class myThread(threading.Thread):
20 def init(self,threadID,name,counter):
21 threading.Thread.init(self)
22 self.threadID=threadID
23 self.name=name
24 self.counter=counter
25 def run(self):
26 print("线程开始:"+self.name)
27 print_time(self.name,self.counter,5)
28 print("线程退出:"+self.name)
29
30 # 创建线程
31 thread1=myThread(1,"Thread-1",1)
32 thread2=myThread(2,"Thread-2",2)
33
34 # 开始新线程
35 thread1.start()
36 thread2.start()
37 thread1.join()
38 thread2.join()
39

线程模块

Python3 通过两个标准库 _thread 和 threading 提供对线程的支持。
_thread 提供了低级别的、原始的线程以及一个简单的,它相比于 threading 模块的功能还是比较有限的。

threading 模块除了包含 _thread 模块中的所有方法外,还提供的其他方法:

•threading.currentThread(): 返回当前的线程变量。

•threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。

•threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

除了使用方法外,线程模块同样提供了Thread类来处理线程,Thread类提供了以下方法:
•run(): 用以表示线程活动的方法。
•start():启动线程活动。
•join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。
•isAlive(): 返回线程是否活动的。
•getName(): 返回线程名。
•setName(): 设置线程名。

原文:Http://www.runoob.com/python3/python3-multithreading.html

--结束END--

本文标题: Python3 多线程讲解

本文链接: https://lsjlt.com/news/192836.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3 多线程讲解
    前言 Python3 线程中常用的两个模块为•_thread•threading(推荐使用) thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 Python3 中不能再使用”thread” 模块。为了兼容性,...
    99+
    2023-01-31
    多线程
  • Python3多线程详解
    目录为什么要使用多线程?如何创建和执行一个线程方法一正式介绍threading模块守护线程 Daemon方法一方法二让主线程等待子线程结束 join线程共享资源可能引起什么问题?竞态...
    99+
    2023-05-19
    Python3多线程 Python3线程
  • Python3 多线程
    两个概念: 并发:假同时,一段时间内同时处理多个任务,单核都可以; 并行:真同时,同时处理多个任务,必须多核。 主流操作系统上完成并发的手段有进程和线程,主流的编程语言提供了用户空间的调度:协程。Python 也不例外。 (想自学习编...
    99+
    2023-01-31
    多线程
  • python3 - 多线程 - thre
    目录 一、threading 模块:对线程的处理 二、Thread组件 2-1 开启线程的方式一(函数) 2-2 开启线程的方式二 (类) 2-3 Thread 相关内置子方法  2-4 主进程等待新建线程实例 2-5 线程共用创造进程内...
    99+
    2023-01-31
    多线程 thre
  • python3 多线程编程
    0.什么是线程 多线程模块 创建线程的方法 join()方法 4.isAlive()方法 name属性和daemon属性 6.线程的同步---锁 7.线程的同步---Event对象 8.线程的同步---Condition条件...
    99+
    2023-01-31
    多线程
  • python线程及多线程实例讲解
    进程和线程一、进程进程是程序的分配资源的最小单元;一个程序可以有多个进程,但只有一个主进程;进程由程序、数据集、控制器三部分组成。二、线程线程是程序最小的执行单元;一个进程可以有多个线程,但是只有一个主线程;线程切换分为两种:一种是I/O切...
    99+
    2023-01-31
    线程 多线程 实例
  • C# 多线程详细讲解
    多线程是指在一个程序中同时执行多个线程,每个线程可以独立执行不同的任务。在 C# 中,可以使用 System.Threading 命...
    99+
    2023-09-09
    C#
  • Kotlinserver多线程编程详细讲解
    目录service 是什么多线程编程Service 基本用法service 是什么 Service是实现程序后台运行的解决方案,适合执行非交互,后台预先的任务,即使用户打开其他应用,...
    99+
    2023-01-30
    Kotlin server多线程编程 Kotlin server Kotlin多线程编程
  • python3 queue多线程通信
    目录queue分类例子一、生产消费模式例子二、task_done和join例子三、多线程里用queuequeue分类 python3 queue分三类: 先进先出队列后进先出的栈优先...
    99+
    2024-04-02
  • Java多线程求和实例讲解
    本篇内容主要讲解“Java多线程求和实例讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java多线程求和实例讲解”吧!编写一个启动100个线程的程序,每个线程给一个初值为0的变量sum加1,...
    99+
    2023-06-17
  • VB.NET开发多线程详细讲解
    这篇文章主要介绍“VB.NET开发多线程详细讲解”,在日常操作中,相信很多人在VB.NET开发多线程详细讲解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VB.NET开发多线程详细讲解”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • C#多线程的相关操作讲解
    一、线程异常 我们在单线程中,捕获异常可以使用try-catch,代码如下所示: using System; namespace MultithreadingOption { ...
    99+
    2024-04-02
  • python多线程----------主线程,子线程,任务讲解----拿下就是胜利
    这一篇博客主要介绍给分不清楚主线程.子线程的小可爱们 在之前的一篇博客中我简单的介绍了并发,并行 并发:是在时段的完成多个任务 ,但是每个时间点只有一个任务运行 而多线程就是这一个原理 非守护线程 代码: from threading im...
    99+
    2023-09-05
    开发语言 python
  • Python多线程使用方法详细讲解
    目录一、简介二、线程模块三、使用 threading 模块创建线程四、线程同步五、线程优先级队列( Queue)1、queue队列2、队列queue公共方法3、其他六、Queue详细...
    99+
    2024-04-02
  • python3-001-多线程简单聊天室
            这次代码为python3编写,并且使用网络调试助手、与python3聊天室程序进行通信测试。1、先放干货代码,如下: 1 from socket import * 2 from threading import Th...
    99+
    2023-01-31
    多线程 聊天室 简单
  • JavaThread多线程开发中Object类详细讲解
    目录方法概览Threadwait  notify notifyAll方法详解作用阻塞阶段唤醒阶段遇到中断代码展示特点通过wait notify方法实现生产者和消费者slee...
    99+
    2023-03-01
    Java Object类 Java Thread多线程
  • python3 queue多线程通信怎么实现
    这篇文章主要介绍了python3 queue多线程通信怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python3 queue多线程通信怎么实现文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-02
  • python3实现多线程ping一个网段
    ####################################################""" 实现多线程ping一个网段的地址,测试联通性 copyright  2016/9/30 lighter_py"""#######...
    99+
    2023-01-31
    网段 多线程 ping
  • Python3多线程处理爬虫的实战
    多线程 到底什么是多线程?说起多线程我们首先从单线程来说。例如,我在这里看书,等这件事情干完,我就再去听音乐。对于这两件事情来说都是属于单线程,是一个完成了再接着完成下一个。但是我一...
    99+
    2023-03-02
    Python3多线程爬虫 Python 多线程爬虫
  • Java超详细讲解多线程中的Process与Thread
    目录进程和线程的关系操作系统是如何管理进程的并行和并发创建线程的方法串行执行和并发执行Thread中的一次额重要方法中断线程线程等待线程休眠(sleep)进程和线程的关系 ⭐在操作系...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作