threading模块

  1. import time
  2. import random
  3. import threading
  4. class Inclass:
  5. def __init__(self):
  6. print 'Inclass 初始化'
  7. def execIn(self,i):
  8. rand = int(random.random() * 10)
  9. print i,'---%s--开始执行,暂停%d秒' % (time.ctime(),rand)
  10. time.sleep(rand)
  11.  
  12. class Outclass:
  13. def __init__(self):
  14. print 'OutClass初始化'
  15. def execOut(self):
  16. InC = Inclass()
  17. length = 1000
  18. nloops = range(length)
  19. threads = []
  20. for i in range(length):
  21. t = threading.Thread(target = InC.execIn, args = (i,))
  22. threads.append(t)
  23. for i in nloops:
  24. threads[i].start()
  25. for i in nloops:
  26. threads[i].join()
  27.  
  28. OC = Outclass()
  29. OC.execOut()

版本2:

  1. import time
  2. import random
  3. import threading
  4. class Inclass:
  5. def __init__(self):
  6. print 'Inclass 初始化'
  7. def execIn(self,i):
  8. rand = int(random.random() * 10)
  9. print i,'---%s--开始执行,暂停%d秒' % (time.ctime(),rand)
  10. time.sleep(rand)
  11. return i
  12.  
  13. class MyThread(threading.Thread):
  14. def __init__(self,func,args,name = ''):
  15. threading.Thread.__init__(self)
  16. self.name = name
  17. self.func = func
  18. self.args = args
  19. def getResult(self):
  20. return self.res
  21. def run(self):
  22. self.res = self.func(*self.args)
  23.  
  24. class Outclass:
  25. def __init__(self):
  26. print 'OutClass初始化'
  27. def execOut(self):
  28. InC = Inclass()
  29. length = 1000
  30. threadlen = 10
  31. k = 0
  32. i = 0
  33. while i < length:
  34. nloops = range(threadlen)
  35. threads = []
  36. for j in range(threadlen):
  37. t = MyThread( InC.execIn, (i,))
  38. i += 1
  39. threads.append(t)
  40. for i in nloops:
  41. threads[i].start()
  42. for i in nloops:
  43. threads[i].join()
  44.  
  45. for i in nloops:
  46. print '-----result:',threads[i].getResult()
  47.  
  48. print k,'---%s--开始执行多线程第%d个小循环' % (time.ctime(),k)
  49. k += 1
  50.  
  51. OC = Outclass()
  52. OC.execOut()

【Python】多线程2的更多相关文章

  1. python多线程学习记录

    1.多线程的创建 import threading t = t.theading.Thread(target, args--) t.SetDeamon(True)//设置为守护进程 t.start() ...

  2. python多线程编程

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

  3. Python 多线程教程:并发与并行

    转载于: https://my.oschina.net/leejun2005/blog/398826 在批评Python的讨论中,常常说起Python多线程是多么的难用.还有人对 global int ...

  4. python多线程

    python多线程有两种用法,一种是在函数中使用,一种是放在类中使用 1.在函数中使用 定义空的线程列表 threads=[] 创建线程 t=threading.Thread(target=函数名,a ...

  5. python 多线程就这么简单(转)

    多线程和多进程是什么自行google补脑 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用简单的例子,让你对多线程有个初步的认识. 单线程 在好些年前的 ...

  6. python 多线程就这么简单(续)

    之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...

  7. python多线程监控指定目录

    import win32file import tempfile import threading import win32con import os dirs=["C:\\WINDOWS\ ...

  8. python多线程ssh爆破

    python多线程ssh爆破 Python 0x01.About 爆弱口令时候写的一个python小脚本,主要功能是实现使用字典多线程爆破ssh,支持ip表导入,字典数据导入. 主要使用到的是pyth ...

  9. 【python,threading】python多线程

    使用多线程的方式 1.  函数式:使用threading模块threading.Thread(e.g target name parameters) import time,threading def ...

  10. <转>Python 多线程的单cpu与cpu上的多线程的区别

    你对Python 多线程有所了解的话.那么你对python 多线程在单cpu意义上的多线程与多cpu上的多线程有着本质的区别,如果你对Python 多线程的相关知识想有更多的了解,你就可以浏览我们的文 ...

随机推荐

  1. [k8s]k8s 1.9(on the fly搭建) 1.9_cni-flannel部署排错 ipvs模式

    角色 节点名 节点ip master n1 192.168.14.11 节点1 n2 192.168.14.12 节点2 n3 192.168.14.13 https://raw.githubuser ...

  2. [svc]logstash和filebeat之间ssl加密

    cfssl生成证书 wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl wget https://pkg ...

  3. C++学习笔记16,C++11中的显式的默认构造函数以及显示删除默认构造函数

    在早期的C++中.假设须要一些接受一些參数的构造函数,同一时候须要一个不接收不论什么參数的默认构造函数.就必须显示地编写空的默认构造函数.比如: //tc.h class A{ private: in ...

  4. compiled inline cache

    http://cr.openjdk.java.net/~jrose/pres/200910-VMIL.pdf https://wiki.openjdk.java.net/display/HotSpot ...

  5. Spark history Server配置实用

    Spark history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEB ...

  6. innerHTML与innerText区别

    document 对象中有innerHTML和innerText 两个属性, 这两个属性都是获取document对象的文本内容的,这两个属性间有哪些区别呢?通过几个例子来看一下. 示例1 <ht ...

  7. less基本知识总结

    > 一款比较流行的预处理CSS,支持变量.混合.函数.嵌套.循环等特点> [官网](http://lesscss.org/)> [中文网](http://lesscss.cn/)&g ...

  8. LeetCode: solveSudoku 解题报告

    Sudoku SolverWrite a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are in ...

  9. PowerShell中实现人机交互

    编写脚本的过程中有很多时候需要进行人机交互,比如我写一个脚本,需要动态的输入一些内容,比如用户名和密码之类的东西,这些是没办法事先写进代码里的.而通过外部文件进行信息读取,友好性又差了点.所以当我们需 ...

  10. C++笔记 4

    1.类和对象   类就是对对象的描述,主要从属性和行为两个方面描述.   对于属性一般作成private , 行为作为public   函数 (1)构造函数,初始化所有的成员变量,系统自动调用,可以重 ...