Python开启线程,在函数中开线程的实例
逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程
我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql
开启线程之后性能提升一倍,同时用信号量做线程同步,控制数据库同时连接数
这里只是简单的一个demo,主要是开线程的处理方式,在自己类里面的函数中开启线程,并用自己类的成员函数做线程运行函数。
#coding=utf-8 import threading class Test: __init = 1 def __init__(self): self.__sem = threading.Semaphore(value=5)#初始化信号量,最大并发数 return def handle(self, data): #开启线程,传入参数 _thread = threading.Thread(target=self.__run, args=(data,)) _thread.setDaemon(True) _thread.start()#启动线程 return def __run(self, data): self.__sem.acquire()#信号量减1 self.__init +=data print(self.__init) self.__sem.release()#信号量加1 return if __name__=="__main__": test = Test() test.handle(1) print("end")
以上这篇Python开启线程,在函数中开线程的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python并发编程之线程实例解析
常用用法 t.is_alive() Python中线程会在一个单独的系统级别线程中执行(比如一个POSIX线程或者一个Windows线程) 这些线程将由操作系统来全权管理.线程一旦启动,将独立执行直到目标函数返回.可以通过查询 一个线程对象的状态,看它是否还在执行t.is_alive() t.join() 可以把一个线程加入到当前线程,并等待它终止 Python解释器在所有线程都终止后才继续执行代码剩余的部分 daemon 对于需要长时间运行的线程或者需要一直运行的后台任务,可以用后台线程(也称
-
python回调函数中使用多线程的方法
下面的demo是根据需求写的简单测试脚本 #!/usr/bin/env python # coding: utf-8 # 第一个列表为依赖组件和版本号,后面紧跟负责人名称 # 接着出现第二个以来组建列表,负责人为空了 # 所以根据需求需要对组件.版本号.负责人进行不同处理 # 这时在for循环中根据if判断,写回调函数处理 # 格式不一致数据的测试数据 a = [[u'tool-1', u'1.9.13'], u'xiaowang', u'xiaoqu', [u'tool-2', u'1.9.2
-
python 对类的成员函数开启线程的方法
如下所示: # -*- coding: utf-8 -*- import threading import thread import time class Test(object): def __init__(self): # threading.Thread.__init__(self) self._sName = "machao" def process(self): #args是关键字参数,需要加上名字,写成args=(self,) th1 = threading.Thread
-
Python 多线程的实例详解
Python 多线程的实例详解 一)线程基础 1.创建线程: thread模块提供了start_new_thread函数,用以创建线程.start_new_thread函数成功创建后还可以对其进行操作. 其函数原型: start_new_thread(function,atgs[,kwargs]) 其参数含义如下: function: 在线程中执行的函数名 args:元组形式的参数列表. kwargs: 可选参数,以字典的形式指定参数 方法一:通过使用thread模块中的函数创
-
Python开启线程,在函数中开线程的实例
逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之后性能提升一倍,同时用信号量做线程同步,控制数据库同时连接数 这里只是简单的一个demo,主要是开线程的处理方式,在自己类里面的函数中开启线程,并用自己类的成员函数做线程运行函数. #coding=utf-8 import threading class Test: __init = 1 def _
-
python 文件的基本操作 菜中菜功能的实例代码
python 文件的基本操作 菜中菜 文件操作 open():打开 file:文件的位置(路径) mode:操作文件模式 encoding:文件编码方式 f :文件句柄 f = open("1.txt",mode = 'r',encoding = 'utf-8') print(f.read()) f.close 1.文件操作模式: r,w,a(重要) rb,wb,ab(次要) r+,w+,a+ 1.1 r/w/a 1. r操作: f = open('1
-
Python 通过截图匹配原图中的位置(opencv)实例
安装依赖 1)下载安装opencv-2.4.9,并将cv2.pyd拷贝到python安装目录的site-package下 2)pip install numpy 3)pip install aircv 准备一张原图和截图 原图 截图 代码 import cv2 import aircv as ac # print circle_center_pos def draw_circle(img, pos, circle_radius, color, line_width): cv2.circle(im
-
Python学习笔记之函数的定义和作用域实例详解
本文实例讲述了Python函数的定义和作用域.分享给大家供大家参考,具体如下: 定义函数 默认参数: 可以向函数中添加默认参数,以便为在函数调用中未指定的参数提供默认值 # 如果调用 cylinder_volume 函数时,不提供radius参数,那么radius的值为5 def cylinder_volume(height, radius=5): pi = 3.14159 return height * pi * radius ** 2 向函数中的参数传值的方法:按照位置和按照名称 cylin
-
PowerShell函数中接收管道参数实例
本文介绍在自定义PowerShell函数时,如何设置函数通过管道(Pipeline)接收输入参数. 先看一个例子,用管道作为输入参数的函数: 复制代码 代码如下: function Test-Pipeline { param( [Parameter(ValueFromPipeline=$true)] $InputObject ) process { "Working with $InputObject"
-
JavaScript this在函数中的指向及实例详解
一.this,其实可以类比成人 说到this的话,我们在js中主要研究的都是函数中的this,在javascript中,this代表当前行为的执行主体,而context代表的是当前行为执行的的环境(区域). 例如男神在北理珠吃饭,这句话分别代表的含义如下 男神 -->> 主体(this) 吃饭 -->> 函数(function) 北理珠 -->> 环境(context) -->>说明:吃饭是函数,男神是函数的主体,北理珠就是当前行为的执行环境(context
-
Python爬取动态网页中图片的完整实例
动态网页爬取是爬虫学习中的一个难点.本文将以知名插画网站pixiv为例,简要介绍动态网页爬取的方法. 写在前面 本代码的功能是输入画师的pixiv id,下载画师的所有插画.由于本人水平所限,所以代码不能实现自动登录pixiv,需要在运行时手动输入网站的cookie值. 重点:请求头的构造,json文件网址的查找,json中信息的提取 分析 创建文件夹 根据画师的id创建文件夹(相关路径需要自行调整). def makefolder(id): # 根据画师的id创建对应的文件夹 try: fol
-
Python如何在bool函数中取值
bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. 1.当对数字使用bool函数时,0返回假(False),任何其他值都返回真. >>> bool(0) False >>> bool(1) True >>> bool(-1) True >>> bool(21334) True 2.当对字符串使用bool函数时,对于没有值的字符串(也就是None或者空
-
一文彻底了解Android中的线程和线程池
目录 前言 1.主线程和子线程 2.Android中的线程形态 2.1 AsyncTask 2.2 AsyncTask的工作原理 2.3 HandleThread 2.4 IntentService 3.Android中的线程池 3.1 ThreadPoolExecutor 3.2线程池的分类 总结 前言 从用途上来说Android的线程主要分为主线程和子线程两类,主线程主要处理和界面相关的工作,子线程主要处理耗时操作.除Thread之外,Android中还有其他扮演线程的角色如AsyncTas
-
Java中用户线程与守护线程的使用区别
目录 1.默认用户线程 2.主动修改为守护线程 2.1 设置线程为守护线程 2.2 设置线程池为守护线程 3.守护线程 VS 用户线程 3.1 用户线程 3.2 守护线程 3.3 小结 4.守护线程注意事项 4.1 setDaemon 执行顺序 4.2 守护线程的子线程 4.3 join 与守护线程 5.守护线程应用场景 6.守护线程的执行优先级 7.总结 前言; 在 Java 语言中线程分为两类:用户线程和守护线程,而二者之间的区别却鲜有人知,所以本文磊哥带你来看二者之间的区别,以及守护线程需
随机推荐
- JavaScript中正则表达式的概念与应用
- Java正则表达式实现在文本中匹配查找换行符的方法【经典实例】
- PHP使用GIFEncoder类生成的GIF动态图片验证码
- dos或wamp下修改mysql密码的具体方法
- Android 开源项目侧边栏菜单(SlidingMenu)使用详解
- node.js+captchapng+jsonwebtoken实现登录验证示例
- 用简单的脚本实现一款漂亮的下拉菜单
- ASP.NET MVC命名空间时引起错误的解决方法
- 详解 linux mysqldump 导出数据库、数据、表结构
- 为jQuery增加join方法的实现代码
- 回车直接实现点击某按钮的效果即触发单击事件
- 详解在Spring Boot中使用数据库事务
- php车辆违章查询数据示例
- Android自定义进度条的圆角横向进度条实例详解
- 选择Spring Boot项目的内嵌容器的理由
- ADSL MODEM初始地址及用户名密码大全
- Linux使用vim编辑文件保存时报E514:write error (file system full?)问题解决
- IntelliJ IDEA设置代码的快捷编辑模板Live Templates
- java获取反射机制的3种方法总结
- PHP实现关键字搜索后描红功能示例