多线程举例:

  1. import time
  2. import threading
  3. def worker():
  4. print ("hello.Kamil")
  5. time.sleep(1)#等待一秒
  6. return
  7. time_start=time.time()
  8. if __name__ == "__main__":
  9. for i in range(5):
  10. worker()#(执行五次)
  11. time_end = time.time()
  12. print(time_end-time_start)
  13. for n in range(5):
  14. t = threading.Thread(target=worker)
  15. t.start()
  16. time_end2 = time.time()

执行结果:

  1. kamil@ubuntu-kamil:~/PycharmProjects/ftp0310/0310shangke/try$ python3. d.py
  2. hello.Kamil
  3. hello.Kamil
  4. hello.Kamil
  5. hello.Kamil
  6. hello.Kamil
  7. 5.006033897399902
  8. hello.Kamil
  9. hello.Kamil
  10. hello.Kamil
  11. hello.Kamil
  12. hello.Kamil
  13. 0.0030531883239746094
  14. kamil@ubuntu-kamil:~/PycharmProjects/ftp0310/0310shangke/try$

第二次虽然也是循环5次,但是启用多线程来完成的,所以速度提升非常明显;

示例2:

  1. import threading
  2. import time
  3. class timer(threading.Thread):
  4. def __init__(self, num, interval):
  5. threading.Thread.__init__(self)
  6. self.thread_num = num
  7. self.interval = interval
  8. self.thread_stop = False
  9. def run(self):
  10. while not self.thread_stop:
  11. print ('Thread Object(%s), Time:%s\n' %(self.thread_num, time.ctime()) )
  12. time.sleep(self.interval)
  13. def stop(self):
  14. self.thread_stop = True
  15. def test():
  16. thread1 = timer('thread1',2)
  17. thread2 = timer('thread2',3)
  18. thread1.start()
  19. thread2.start()
  20. time.sleep(7)
  21. thread1.stop()
  22. thread2.stop()
  23. return
  24.  
  25. if __name__ == '__main__':
  26. test()

同时启动两个线程,thread1 与 thread2 ,其中1 是间隔2s 执行打印一次,2是间隔3s执行打印一次;在运行开始后,会在第六秒再次同时运行;结果如下:

  1. kamil@ubuntu-kamil:~/PycharmProjects/ftp0310/0310shangke/try$ python3.4 c.py
  2. Thread Object(thread1), Time:Thu Mar 17 09:27:26 2016 1 26
  3.  
  4. Thread Object(thread2), Time:Thu Mar 17 09:27:26 2016 2 26
  5.  
  6. Thread Object(thread1), Time:Thu Mar 17 09:27:28 2016             1 28
  7.  
  8. Thread Object(thread2), Time:Thu Mar 17 09:27:29 2016 2 29
  9.  
  10. Thread Object(thread1), Time:Thu Mar 17 09:27:30 2016 1 30
  11.  
  12. Thread Object(thread2), Time:Thu Mar 17 09:27:32 2016 2 32
  13.  
  14. Thread Object(thread1), Time:Thu Mar 17 09:27:32 2016 1 32
  15.  
  16. kamil@ubuntu-kamil:~/PycharmProjects/ftp0310/0310shangke/try$

threading.activeCount()的使用

threading示例的更多相关文章

  1. 多线程(threading)示例

    一.多线程简单示例 import threading,time print('第一线程(默认):程序开始啦!') def takeANap(): time.sleep(5) print('第二线程:5 ...

  2. Roslyn入门(二)-C#语义

    先决条件 Visual Studio 2017 .NET Compiler Platform SDK Rosyln入门(一)-C#语法分析 简介 今天,Visual Basic和C#编译器是黑盒子:输 ...

  3. python threading queue模块中join setDaemon及task_done的使用方法及示例

    threading:     t.setDaemon(True)  将线程设置成守护线程,主进行结束后,此线程也会被强制结束.如果线程没有设置此值,则主线程执行完毕后还会等待此线程执行.     t. ...

  4. python多线程threading下载示例

    #coding:utf-8 # windows中测试不通过,下载的图片不完整 # 通过多线程下载图片 import requests import threading class downloader ...

  5. 一个简单 System.Threading.Tasks.Dataflow.TransformBlock 示例

    直接贴代码了: using System; using System.Collections.Generic; using System.IO; using System.Threading.Task ...

  6. 一个简单 System.Threading.Tasks.Dataflow.BufferBlock 示例

    直接贴代码了: using System; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; namespace ...

  7. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  8. WCF学习之旅—第三个示例之一(二十七)

    一.前言 通过前面二十几个章节的学习,我们知道了什么是WCF:WCF中的A.B.C:WCF的传输模式:WCF的寄宿方式:WCF的异常处理.本文综合应用以上知识点,一步一步写一个小的WCF应用程序——书 ...

  9. 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token

    1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...

随机推荐

  1. c#匿名类,匿名对象

    何谓匿名类,其实本质和普通定义的类一样,只不过是由系统的编译器来完成的,首先举个例子. 一般情况 //声明一个类,包含贴别多的字段 public class Person() { public str ...

  2. DOM操作基础

    ownerDocument 返回元素的 ownerDocumentoffsetParent 获取父节点(找有定位的父节点,没有定位默认是body,ie7以下定位在自己是html)parentNode ...

  3. http协议(一)基础知识

    我自己写的随笔一般是偏学习笔记性质的,或者一点个人理解,适合新人,大牛可以忽略这个...... 参考书籍——<图解http> 当我们在浏览器的地址栏中输入网址,然后点击回车,接着,浏览器就 ...

  4. 32位计时器极端情况下产生的bug

    用每毫秒更新的32位变量用来计时, 使用这个变量计算离上次操作是否间隔10秒.两种写法: f - lastF <10, 和 f

  5. Delphi常用系统函数总结

    Delphi常用系统函数总结 字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S : ...

  6. noi1696 逆波兰表达式

    1696:逆波兰表达式 http://noi.openjudge.cn/ch0303/1696/ 总时间限制:  1000ms 内存限制:  65536kB 描述 逆波兰表达式是一种把运算符前置的算术 ...

  7. "Timeout"在测试框架里是如何被实现的

    今天组里的小伙伴问了我一个问题:“我这里有一个底层驱动的接口,我想在测试它的时候加上超时限制,时间一过就fail掉它,执行后面的测试用例.怎么办到呢?”.我问:“它自己没有超时响应的机制么? 超时抛e ...

  8. IntelliJ IDEA,代码行宽度超出限制时自动换行

    转自:http://my.oschina.net/angerbaby/blog/471351 当我们使用IDE写代码时,为了保证代码的可阅读性和优雅性,通常会借助IDE的代码风格设置功能,令IDE智能 ...

  9. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

  10. Bootstrap系列 -- 3. 段落

    一. 段落基本用法 1. 段落使用<p>标签 2. 段落全局使用font-size=14px字体 ..... 更多请使用Firefox 查看 <p> 华盛顿大学和清华大学共同在 ...