Python开启线程,在函数中开线程的实例

yipeiwu_com7年前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设计】。

相关文章

创建Django项目图文实例详解

创建Django项目图文实例详解

本文实例讲述了创建Django项目的方法。分享给大家供大家参考,具体如下: 创建Django项目 创建一个HelloDjango项目 GitHub地址:https://github.c...

Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)

首先说下,由于最新的 0.8 版还是开发版本,因此我使用的是 0.79 版,API 也许会有些不同。因为我是搭配 MySQL InnoDB 使用,所以使用其他数据库的也不能完全照搬本文。...

Python实现字典的遍历与排序功能示例

本文实例讲述了Python实现字典的遍历与排序功能。分享给大家供大家参考,具体如下: 字典的遍历: 首先: items(): 功能:以列表的形式返回字典键值对 eg: dict_={...

python字典的setdefault的巧妙用法

现在有一个员工字典,类似这样的结构 staff_dic = {"name":"灭霸", "age": 10000, "hobbies":["打响指", "扣脚"]} 假设我们要给员...

python从子线程中获得返回值的方法

如下所示: # coding:utf-8 import time from threading import Thread def foo(number): time.s...