python多线程有几种实现方法,都是什么?

目前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 对象中

import threading,timefrom time import sleep, ctimedef 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()

第二种是创建一个新的class,将要执行的代码 写到run函数里面。

import threading ,timefrom time import sleep, ctimedef 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 = nloopself.nsec = nsecdef 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多线程有几种实现方法相关推荐

  1. 多线程有几种实现方法?同步有几种实现方法?

    多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所 ...

  2. 多线程有几种实现方法,同步有几种实现方法

    多线程有几种实现方法,同步有几种实现方法 多线程有两种实现方法:继承 Thread 类或者实现 Runnable 接口. 一.继承 Thread 类 //1.作为Thread的子类,并重写run方法. ...

  3. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么

    java中多线程的实现方法有两种: 1. 直接继承thread类; 2.实现runnable接口;同百步的实现方法有五种: 1.同步方法; 2.同步代码块; 3.使用特殊域变量(volatile)实现 ...

  4. 多线程的两种实现方法

    单线程:安全性高,效率低 多线程:安全性低,效率高 一. 多线程的第一种实现方式:创建一个继承Thread的类,实现run()方法,然后在另一个类中创建该类的对象,通过对象去调用多线程中的方法. 代码 ...

  5. 多线程有几种实现方法?同步有几种实现方法

    多线程有几种实现方法?同步有几种实现方法 答:多线程的实现方法有继承Thread类,实现Runnable接口,实现Callable接口. 同步可以使用Synchronized关键字,也可以使用可重入锁 ...

  6. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

    1.多线程有4种实现方法 继承Thread类,重写run方法 实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 通过Calla ...

  7. 面试题——多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

    多线程有两种实现方法,一是继承Thread类,重写方法run(),二是实现Runnable接口,实现方法run(): 同步有两种实现方法,分别是synchronized.wait与notify.

  8. 多线程有几种实现方法都是什么?

    多线程有两种实现方法,如下所示: 一:继承Thread类,重写方法run(): 二:实现Runnable接口,实现方法run():

  9. python多线程的几种方法

    python多线程编程 Python多线程编程中常用方法: 1.join()方法:如果一个线程或者在函数执行的过程中调用另一个线程,并且希望待其完成操作后才能执行,那么在调用线程的时就可以使用被调线程 ...

最新文章

  1. 水平,垂直居中的15种方法
  2. Android架构篇-2 国际化多语言
  3. redis sentinel哨兵模式集群搭建教程
  4. harmonyos2.0开发者beta,华为鸿蒙 HarmonyOS 2.0 手机开发者 Beta 活动(广州站)报名开启...
  5. 使用SG_IO发送SCSI 指令测试底层驱动的scatter-gather 功能
  6. vue项目的一些需要注意到的细节
  7. Kafka架构设计:分布式发布订阅消息系统
  8. 如何在 C# 中使用 委托
  9. 将Infinispan版本映射为最低Java版本
  10. atitit.MIZIAN 陕北方言 特有词汇 大词典 attilax 整理 a--g v1 q31.xlsx
  11. AttributeError: module ‘torch.onnx‘ has no attribute ‘set_training‘
  12. 阿里彭蕾:CEO如何对抗孤独感?
  13. 【ML小结13】最大熵模型
  14. js使用百度离线地图
  15. PLSQL Developer 没有64位版本 + 找不到 msvcr71.dll
  16. nextjs的发布,pm2发布nextjs项目
  17. Bitmap图片去除白色背景
  18. 转:深度学习斯坦福cs231n 课程笔记
  19. 计算机操作系统之进程
  20. 数据库的升序降序排列

热门文章

  1. Python批量造数并利用pymysql写入到数据库之multiprocessing多进程、threading多线程实现方式(学习笔记)
  2. aspnet是前端还是后端_asp.net是什么 aspnet是前端还是后端
  3. s905各种型号的区别_液压油型号有何区别?液压油32号和46号区别?
  4. 水果店生意好做吗,怎样开水果店生意火爆
  5. 阿里邮件推送服务发送邮件
  6. iOS中对图片拉伸的四种方式
  7. 2021-10-03 rk3399 nmhopenwrt
  8. 【19调剂】中国农业大学信电学院计算机调剂信息
  9. 【Laravel笔记】11. Debugbar 调试器
  10. Linux简单介绍及常用命令