python多线程使用场景:IO操作,不适合CPU密集操作型任务
 
1、多个线程内存共享
2、线程同时修改同一份数据需要加锁,mutex互斥锁
3、递归锁:多把锁,锁中有锁
4、python多线程,同一时间只有颗CPU在执行。
 
启动线程:
 import threading
def run(name)
print("run thread....") #创建进程对象,target=方法名,args=(参数1,参数b,)
t = threading.Thread(target=run,args=(n,))
#设置守护线程
t.setDaemon(True)
#启动线程
t.start()
#等待线程结束
t.jion()

型号量使用(线程池)

 import threading
import time def run(n):
#加锁
semaphore.acquire()
print("Look:%s"%n)
time.sleep(0.5)
#释放锁
semaphore.release() if __name__ == "__main__":
#同时准许5个线程
semaphore = threading.BoundedSemaphore(5)
tlist = []
#设置多少个线程
for i in range(33):
t = threading.Thread(target=run,args=(i,))
t.start()
tlist.append(t)
for r in tlist:
r.jion()

python多线程知识-实用实例的更多相关文章

  1. python多线程爬取图片实例

    今天试着把前面那个爬取图片的爬虫改成了多线程爬取,虽然最后可以爬取存储图片了,但仍存在一些问题.网址还是那个网址https://www.quanjing.com/category/1286521/1. ...

  2. python 多线程 并发socket实例

    sever side: import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): def handle(self ...

  3. 【爬虫】python 多线程知识

    第一段代码: __author__ = 'Administrator' import threading import time index = 0 class MyThread(threading. ...

  4. python多线程threading.Lock锁用法实例

    本文实例讲述了python多线程threading.Lock锁的用法实例,分享给大家供大家参考.具体分析如下: python的锁可以独立提取出来 mutex = threading.Lock() #锁 ...

  5. Python多线程实例

    前言 感觉理解python多线程用“切换”和“共享”就差不多了.这里就贴上一个抢车票的小小实例,还有自己在编程过程中遇到的坑..... 实例:抢车票 抢车票有三类人:会员.弄了加速包.普通人. 说说区 ...

  6. Python操作MySQL数据库9个实用实例

    用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...

  7. python多线程同步实例分析

    进程之间通信与线程同步是一个历久弥新的话题,对编程稍有了解应该都知道,但是细说又说不清.一方面除了工作中可能用的比较少,另一方面就是这些概念牵涉到的东西比较多,而且相对较深.网络编程,服务端编程,并发 ...

  8. 适用于 PHP 开发人员的 Python 基础知识

    Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...

  9. Python多线程Selenium跨浏览器测试

    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...

随机推荐

  1. html+css 布局篇

    float 做了float后有一些不好的影响. 1.背景不能显示 由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景 ...

  2. Python入门教程

    http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html

  3. Ubuntu 18 使用docker安装rancher/server:stable并运行kubernetes

    1.安装docker sudo apt-get install docker.io docker的版本:Docker version 17.12.1-ce 2.安装virtualbox-qt,因为vi ...

  4. spring org.springframework.web.bind.annotation 常用注解

    开发中常用的注解记录,查缺补漏 Request注解 @RequestBody @RequestHeader @RequestMapping @RequestParam @RequestPart @Co ...

  5. css层叠性和继承性

    1.了解css层叠性 层叠性是什么?就是解决处理css选择器和属性冲突的能力.css的选择器权重是分大小,就是当多个选择器都选中了同一个标签时,听谁的??? 标签选择器 < 类选择器 < ...

  6. C/C++读写excel文件 的几种方式

    因为有些朋友问代码的问题,将OLE读写的代码分享在这个地方,大家请自己看. http://blog.csdn.net/fullsail/article/details/8449448 C++读取Exc ...

  7. C# GDI+ 利用 Rectangle GraphicsPath 判断 矩形或多边形 图形关系

    最近在做一些简单的图像对比工作,总结了一些GDI+对象的使用方式,记录下来共享给大家使用. 判断Rectangl与多边形的关系 /// <summary> /// 是否包含输入范围 /// ...

  8. DevExpress GridControl如何取消默认的显示方式

    DevExpress GridControl如何取消默认的显示方式,就是表格中好像还嵌套了一个表格,下面有个折叠‘+’按钮,我需要显示的是就是单表格的样式效果. 默认的样式如图: 我需要显示的效果图: ...

  9. .net 面向对象程序设计深入](1)UML

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

  10. Mysql学习---视图/触发器/存储过程/函数/执行计划/sql优化 180101

    视图 视图: 视图是一个虚拟表(非真实存在),动态获取数据,仅仅能做查询操作 本质:[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用.由 ...