python多线程

来源:互联网 发布:高性能php架构 编辑:程序博客网 时间:2024/06/14 10:35

python提供了两个模块来实现多线程thread 和threading ,thread 有一些缺点,在threading 得到了弥补。

先看一个例子:

#coding=utf-8import threadingfrom time import ctime,sleepdef music(func):    for i in range(2):        print "I was listening to %s. %s" %(func,ctime())        sleep(1)def move(func):    for i in range(2):        print "I was at the %s! %s" %(func,ctime())        sleep(5)threads = []t1 = threading.Thread(target=music,args=(u'爱情买卖',))threads.append(t1)t2 = threading.Thread(target=move,args=(u'阿凡达',))threads.append(t2)if __name__ == '__main__':    for t in threads:        t.setDaemon(True)        t.start()    print "all over %s" %ctime()


1、构造方法: 
Thread(group=None, target=None, name=None, args=(), kwargs={}) 
  group: 线程组,目前还没有实现,库引用中提示必须是None; 
  target: 要执行的方法; 
  name: 线程名; 
  args/kwargs: 要传入方法的参数。


2、实例方法: 
  isAlive(): 返回线程是否在运行。正在运行指启动后、终止前。 
  get/setName(name): 获取/设置线程名。 
  start():  线程准备就绪,等待CPU调度
  is/setDaemon(bool): 获取/设置是后台线程(默认前台线程(False))。(在start之前设置)
    如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,主线程和后台线程均停止
         如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止
  start(): 启动线程。 
  join([timeout]): 阻塞当前上下文环境的线程,直到调用此方法的线程终止或到达指定的timeout(可选参数)。



0 0
原创粉丝点击