广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现多线程的两种方式
  • 438
分享到

python实现多线程的两种方式

两种多线程方式 2022-06-04 19:06:25 438人浏览 安东尼

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

摘要

目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便

目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用。
2.7版本之前Python线程的支持还不够完善,不能利用多核CPU,但是2.7版本的python中已经考虑改进这点,出现了multithreading 模块。threading模块里面主要是对一些线程的操作对象化,创建Thread的class。一般来说,使用线程有两种模式:

A 创建线程要执行的函数,把这个函数传递进Thread对象里,让它来执行;
B 继承Thread类,创建一个新的class,将要执行的代码 写到run函数里面。

本文介绍两种实现方法。
第一种 创建函数并且传入Thread 对象中
t.py 脚本内容


import threading,time
from time import sleep, ctime
def now() :
  return str( time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) )
def test(nloop, nsec):
  print 'start loop', nloop, 'at:', now()
sleep(nsec)
  print 'loop', nloop, 'done at:', now()
def main():
  print 'starting at:',now()
  threadpool=[]
for i in xrange(10):
    th = threading.Thread(target= test,args= (i,2))
    threadpool.append(th)
for th in threadpool:
    th.start()
for th in threadpool :
    threading.Thread.join( th )
  print 'all Done at:', now()
if __name__ == '__main__':
    main()

thclass.py 脚本内容:


import threading ,time
from time import sleep, ctime
def now() :
  return str( time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) )
class myThread (threading.Thread) :
"""docstring for myThread"""
   def __init__(self, nloop, nsec) :
     super(myThread, self).__init__()
     self.nloop = nloop
     self.nsec = nsec
   def run(self):
     print 'start loop', self.nloop, 'at:', ctime()
sleep(self.nsec)
     print 'loop', self.nloop, 'done at:', ctime()
def main():
   thpool=[]
   print 'starting at:',now()
for i in xrange(10):
     thpool.append(myThread(i,2))
for th in thpool:
     th.start()
for th in thpool:
     th.join()
   print 'all Done at:', now()
if __name__ == '__main__':
    main()

以上就是本文的全部内容吗,希望对大家学习python程序设计有所帮助。

--结束END--

本文标题: python实现多线程的两种方式

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现多线程的两种方式
    目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便...
    99+
    2022-06-04
    两种 多线程 方式
  • QT实现多线程两种方式案例详解
    Qt线程 Qt4.7之前版本处理步骤 1.自定义一个类,继承于QThread。 class MyThread:public QThread{ public: vid ru...
    99+
    2022-11-12
  • Python多线程实现同步的四种方式
    临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。 锁机制 threading的Lock...
    99+
    2022-06-04
    四种 多线程 方式
  • Go实现线程池的两种方式是什么
    这篇“Go实现线程池的两种方式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Go实现线程池的两种方式是什么”文章吧。w...
    99+
    2023-06-30
  • java中实现多线程的几种方式
    Java多线程的使用有三种方法:继承Thread类、实现Runnable接口和使用Callable和Future创建线程。一、继承Thread类实现方式很简单,只需要创建一个类去继承Thread类然后重写run方法,在main方法中调用该类...
    99+
    2016-12-01
    java 多线程 方式
  • java多线程的实现方式有哪几种
    在Java中,有以下几种实现多线程的方式:1. 继承Thread类:创建一个继承自Thread类的子类,并实现run()方法。通过调...
    99+
    2023-09-26
    java
  • 详解Java实现多线程的三种方式
    目录并发与并行进程与线程java的线程java多线程机制java的主线程线程的生命周期创建线程(3种)继承Thread类实现线程创建实现Runnable接口实现Callable接口线...
    99+
    2022-11-13
  • 分享Java多线程实现的四种方式
    以下四种方式: 1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3...
    99+
    2022-11-13
  • JAVA多线程实现的三种方式介绍
    本篇内容主要讲解“JAVA多线程实现的三种方式介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA多线程实现的三种方式介绍”吧!JAVA多线程实现方式主要有三种:继承Thread类、实现R...
    99+
    2023-06-02
  • python调用excel_vba的两种实现方式
    目录方法一: 方法二:方法一:  import win32com.client xl = win32com.client.Dispatch("Excel....
    99+
    2023-01-29
    python调用excel_vba python excel_vba调用
  • python 实现多线程的三种方法总结
    1._thread.start_new_thread(了解) import threading import time import _thread def job(): ...
    99+
    2022-11-12
  • SpringBoot多数据源的两种实现方式实例
    目录前言基于dynamic-datasource实现多数据源dynamic-datasource介绍dynamic-datasource特性使用 @DS 切换数据源@DS使用实例基于...
    99+
    2022-11-13
  • Java基础之多线程的三种实现方式
    目录一、前言二、继承Thread类实现多线程三、Runnable接口方式实现多线程四、Thread和Runnable的关系五、使用ExecutorService、Callable、F...
    99+
    2022-11-12
  • Android中实现多线程操作的几种方式
    目录前言 最基础的方式 继承Thread类并实现run()方法 匿名内部类实现Runnable接口callable+FutureTask 线程池 手动创建线程池 使用Executor...
    99+
    2022-11-12
  • Go实现线程池(工作池)的两种方式实例详解
    worker pool简介 worker pool其实就是线程池thread pool。对于go来说,直接使用的是goroutine而非线程,不过这里仍然以线程来解释线程池。 在线程...
    99+
    2022-11-13
  • 关于python线程池的四种实现方式
    目录python 线程池的四种实现方式线程简述方式1 multiprocessing.dummy Pool()方式2:multiprocessing.pool ThreadPool ...
    99+
    2023-05-16
    python线程池 python线程池实现
  • Android 线程thread的两种实现方法(必看)
    这篇文章中有三点需要提前说明一下, 一:在android中有两种实现线程thread的方法: 一种是,扩展java.lang.Thread类 另一种是,实现Runnable接口...
    99+
    2022-06-06
    方法 Android
  • Java线程协作的两种方式小结
    目录为什么线程之间需要协作介绍方法一方法二为什么线程之间需要协作 线程之间相互配合,完成某项工作,比如:一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个...
    99+
    2023-05-19
    Java线程协作
  • Java多线程中线程的两种创建方式及比较代码示例
    线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行。当程序作为一个应用程序运行时,java解释器为main()方...
    99+
    2023-05-30
    java 多线程 创建
  • Java详解实现多线程的四种方式总结
    目录前言一、四种方式实现多线程1.继承Thread类创建线程2.实现Runnable接口创建线程3.实现Callable接口4.实现有返回结果的线程二、多线程相关知识1.Runnab...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作