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(target=Test.buildList, args=(self,))
    th1.start()
    th1.join()

  def buildList(self):
    while True:
      print "start"
      time.sleep(3)

test = Test()
test.process()

以上这篇python 对类的成员函数开启线程的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 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开启线程,在函数中开线程的实例

    逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之后性能提升一倍,同时用信号量做线程同步,控制数据库同时连接数 这里只是简单的一个demo,主要是开线程的处理方式,在自己类里面的函数中开启线程,并用自己类的成员函数做线程运行函数. #coding=utf-8 import threading class Test: __init = 1 def _

  • Python 多线程的实例详解

     Python 多线程的实例详解 一)线程基础 1.创建线程: thread模块提供了start_new_thread函数,用以创建线程.start_new_thread函数成功创建后还可以对其进行操作. 其函数原型: start_new_thread(function,atgs[,kwargs]) 其参数含义如下: function: 在线程中执行的函数名     args:元组形式的参数列表.     kwargs: 可选参数,以字典的形式指定参数 方法一:通过使用thread模块中的函数创

  • 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反射机制,从代码块中静态获取参数: co_argcount: 普通参数的总数,不包括参数和*参数. co_names: 所有的参数名(包括参数和*参数)和局部变量名的元组. co_varnames: 所有的局部变量名的元组. co_filename: 源代码所在的文件名. co_flags: 这是一个数值,每一个二进制位都包含了特定信息.较关注的是0b100(0x4)和0b1000(0x8),如果co_flags & 0b100 != 0,说明使用了*args参数:如果co_fl

  • 一般函数指针和类的成员函数指针深入解析

    函数指针是通过指向函数的指针间接调用函数.函数指针可以实现对参数类型.参数顺序.返回值都相同的函数进行封装,是多态的一种实现方式.由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针和一般函数的指针的表现形式不一样. 1.指向一般函数的指针函数指针的声明中就包括了函数的参数类型.顺序和返回值,只能把相匹配的函数地址赋值给函数指针.为了封装同类型的函数,可以把函数指针作为通用接口函数的参数,并通过函数指针来间接调用所封装的函数.下面是一个指向函数的指针使用的例子. 复制代码

  • 怎么实现类的成员函数作为回调函数

    如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过.其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即"this"指针,C++通过传递this指针给其成员函数从而实现程序函数可以访问C++的数据成员.这也可以理解为什么C++类的多个实例可以共享成员函数却-有不同的数据成员.由于this指针的作用,使得将一个CALL-BACK型的成员函数作为回调函数安装时就会因为隐含的this指针使得函数参数个数不匹配,从而导致回调函数安装失败.要解决这一问题的关键就

  • C++获取类的成员函数的函数指针详解及实例代码

    C++获取类的成员函数的函数指针详解 用一个实际代码来说明. class A { public: staticvoid staticmember(){cout<<"static"<<endl;} //static member void nonstatic(){cout<<"nonstatic"<<endl;} //nonstatic member virtualvoid virtualmember(){cout<

  • 详解C++类的成员函数做友元产生的循环依赖问题

    目录 类的声明 类的成员函数做友元以及可能产生的循环依赖问题 情况一:B类的成员函数func是A类的友元,且B类不依赖A类 情况二:类B的成员函数func成员函数是类A的友元,且B类依赖于不完整的A类 情况三:类B的成员函数func是类A的友元,且B类依赖于完整的A类 补充 1.内联函数与循环依赖问题 2.什么情况会需要类的声明?什么情况又需要类的定义? 3.<C++ Primer>一书 “友元再探” 小节的错误 4.没列举出来的情况(可以忽略这断内容) 5.分文件编写时,注意头文件声明的顺序

  • python通过装饰器检查函数参数数据类型的方法

    本文实例讲述了python通过装饰器检查函数参数数据类型的方法.分享给大家供大家参考.具体分析如下: 这段代码定义了一个python装饰器,通过此装饰器可以用来检查指定函数的参数是否是指定的类型,在定义函数时加入此装饰器可以非常清晰的检测函数参数的类型,非常方便 复制代码 代码如下: def accepts(exception,**types):     def check_accepts(f):         assert len(types) == f.func_code.co_argco

  • python隐藏类中属性的3种实现方法

    方法一: 效果图一: 代码一: # 定义一个矩形的类 class Rectangle: # 定义初始化方法 def __init__(self,width,height): self.hidden_width = width self.hidden_height = height # 定义获取width.height的方法 def get_width(self): return self.hidden_width def get_height(self): return self.hidden_

  • Python编程快速上手——strip()函数的正则表达式实现方法分析

    本文实例讲述了Python strip()函数的正则表达式实现方法.分享给大家供大家参考,具体如下: 题目如下: 写一个函数,它接受一个字符串,做的事情和strip()字符串方法一样.如果只传入要去除的字符串(原字符串),没有其他参数,那么就从该字符串首尾去除空白字符串.否则,函数第二个参数指定的字符串将从该字符串中去除 思路如下: 补充:字符串的str.strip()方法,去除字符串首尾指定的字符,只能去除头尾两边,不能去除中间 程序需要做以下的事情: 接受一个字符串和要去除的字符 调用函数去

  • 实例分析java开启线程的方法

    有时候我们在使用java编程的时候,想启动线程,怎么启动呢,下面来分享一下方法 第一步在我们的电脑上打开eclipse,创建一个java项目,并创建三个类,Test是测试Runnable类实现的多线程程序类,DoSomething是实现Runnable接口的多线程类,TestThread是测试继承Thread类实现的多线程程序类,如下图所示: 第二步我们首先看一下DoSomething类,实现了Runnable接口,成为线程类,并在run方法中进行双层循环打印姓名和数字,如下图所示: 第三步我们

随机推荐