python
threading
多线程

一. Threading简介

首先看下面的没有用Threading的程序


  1. ): 

  2. s += i 

  3. time.sleep( 



  4. ): 

  5. s += i 

  6. time.sleep()] 



  7. ): 

  8. print() 

  9. ): 

  10. print( 

  11. threading:  

  12. threading:  

  13. 主线程等待t这个线程 

  14. threading:  

  15. Main:  

  16. threading:  

  17. Main:  

  18. threading:  

  19. Main:  

  20. threading:  

  21. Main:  

  22. threading:  

  23. Main:  

  24. threading:  

  25. Main:  

  26. threading:  

  27. Main:  

  28. Main:  

  29. Main:  

  30. [Finished ) 

  31. print() 

  32. print(  

  33. lock = threading.Lock() ): 

  34. lock.acquire() 

  35. print(share) 

  36. share += self.i 

  37. time.sleep(random.random()) 

  38. print() 

  39. tt = MyThread() 

  40. t.start() 

  41. tt.start() 


  42. >>> 


  43. + =  


  44. + =  


  45. + =  


  46. + =  

  47. [Finished ):  



  48. + =  


  49. + =  


  50. + =  

  51. + =  

  52. [Finished  


  53. share_cond = threading.Condition() 



  54. print(self.name,share) 

  55. share_cond.notify() ) 






  56. Custom  

  57. Produce  

  58. Custom  

  59. Produce  

  60. Custom  

  61. ... 

  62. ... 

  63. ... 

上面的结果会一直重复执行下去

3 ) 信号量threading.Semaphore

属性

  • 实例化时,指定使用量。

  • 其内置计数器,锁定时+1,
    释放时-1,计数器为0则阻塞。

  • acquire(blocking=True,timeout=None)

  • release()释放锁。






  1. sema.release() 

  2. print(self.name,)] 

  3. Sema Had got resource. 

  4. Sema Had got resource. 

  5. Sema Had got resource. 

  6. Sema Had released resource. 

  7. Sema Had got resource. 

  8. Sema Had released resource. 

  9. Sema Had released resource. 

  10. Sema Had got resource. 

  11. Sema Had released resource. 

  12. Sema Had released resource. 

  13. [Finished ) 

  14. print('Main thread set event flag!') 

  15. event.set() 


  16. if __name__ == '__main__': 

  17. thw = MyThreadWait() 

  18. thm = MyThreadMain() 

  19. thw.start() 

  20. thm.start() 


  21. >>> 

  22. Wait Thread Wait... 

  23. Main thread set event flag! 

  24. Wait Thread Start... 

  25. [Finished in 3.6s] 

好了,大概就是这些了,其他的以后再补充,另外感谢麦子学院提供的免费课程~~~真心不是打广告
为了避嫌,顺便感谢一下imooc,极客学院~很多都是从这些造福人类的网站学到的。
另附上麦子学院的视频教程,毕竟要学会感恩嘛
http://www.maiziedu.com/course/644-9663/

marsggbo笔记出品,必属精品

python多线程学习笔记(超详细)的更多相关文章

  1. Java多线程学习(吐血超详细总结)

    Java多线程学习(吐血超详细总结) 林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实 ...

  2. Python多线程学习笔记

    Python中与多线程相关的模块有 thread, threading 和 Queue等,thread 和threading模块允许程序员创建和管理线程.thread模块提供了基本的线程和锁的支持,而 ...

  3. maven学习笔记(超详细总结)

    目录 项目管理利器--maven 第1章 maven概述 1-1 项目管理利器-maven简介 1.1.1 什么是maven 1.1.2 什么是依赖管理 1.1.3 传统项目的依赖管理 1.1.4 m ...

  4. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

  5. java多线程学习笔记——详细

    一.线程类  1.新建状态(New):新创建了一个线程对象.        2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中, ...

  6. java进阶-多线程学习笔记

    多线程学习笔记 1.什么是线程 操作系统中 打开一个程序就是一个进程 一个进程可以创建多个线程 现在系统中 系统调度的最小单元是线程 2.多线程有什么用? 发挥多核CPU的优势 如果使用多线程 将计算 ...

  7. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  8. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  9. JAVA多线程学习笔记(1)

    JAVA多线程学习笔记(1) 由于笔者使用markdown格式书写,后续copy到blog可能存在格式不美观的问题,本文的.mk文件已经上传到个人的github,会进行同步更新.github传送门 一 ...

随机推荐

  1. 从C#到TypeScript - 变量

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...

  2. AKKA学习笔记

    AKKA学习笔记总结 01. AKKA 1. 介绍: Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable).弹性的(Resilient).快速响应的(Responsive)应用程 ...

  3. ABP Zero 多租户管理

    ABPZero - 多租户管理 启用多租户 ASP.NET Boilerplate和module-zero可以运行多租户或单租户模式.多租户默认为禁用.我们可以在我们的模块PreInitialize方 ...

  4. Redis实战与 Session缓存

    C#操作Redis的库有很多,比如C# Redis Client就很好用, 在NuGet上搜索 ServiceStack.Redis  安装到项目中,将会添加以下引用 ServiceStack.Red ...

  5. 第22篇 js中的this指针的用法

    前面把js的相关知识总结了下,今天把js中的上下文的this,对于强类型语言,this的用法非常的单一,因为他们没有js特有的动态绑定. 首先看下面代码: function funcA() { thi ...

  6. Lightbox 图片展示插件

    html <a href="<?php echo RESOURCES_BASE_FOLDER;?>image/default_pic.jpg" target=&q ...

  7. AlloyTouch.js 源码 学习笔记及原理说明

    alloyTouch这个库其实可以做很多事的, 比较抽象, 需要我们用户好好的思考作者提供的实例属性和一些回调方法(touchStart, change, touchMove, pressMove, ...

  8. 解决AJAX在火狐,谷歌都能正常运行,而IE不行的问题

    如图所示: 经过一系列测试,并不是data参数的问题,也不是if...else...判断的问题,居然是console.log()将函数阻拦住了,百度了下说低版本的IE不支持console.log(), ...

  9. node.js爬虫爬取拉勾网职位信息

    简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳.杭州.西安.成都7个城市的数据,分别以前端.PHP.java.c++.python.Androi ...

  10. 1935: [Shoi2007]Tree 园丁的烦恼

    1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec  Memory Limit: 357 MBSubmit: 648  Solved: 273[Submit][ ...