Python多线程编程

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错

python2.4前有个thread模块支持多线程编程,2.4后新增了threading模块,提供更高级别和更强大的线程支持.

  • threading.activeCount():返回激活的线程对象的数量
  • threading.currentThread():返回当前cpu执行的线程对象
  • threading.enumerate(): 返回当前激活的线程对象列表

除此之外,threading提供了很多和java中Thread类一样的方法:(注意这是都是实例方法)

  • run(): The run() method is the entry point for a thread.
  • start(): The start() method starts a thread by calling the run method.
  • join([time]): The join() waits for threads to terminate.
  • isAlive(): The isAlive() method checks whether a thread is still executing.
  • getName(): The getName() method returns the name of a thread.
  • setName(): The setName() method sets the name of a thread.

创建线程的方式有两种:

1)继承threading.Thread

a.创建一个threading.Thread的子类
b.覆盖init(self [,args])
c.重写run方法

#!/usr/bin/python 
#!coding=utf-8
import threading
import time
exitFlag = 0
class MyThread(threading.Thread):
    def __init__(self, threadID, name, counter):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
        self.counter = counter

    def run(self):
        task()

    def task(self):
       '''线程要执行的任务'''
       print 'starting ' + self.name
       print 'exiting ' + self.name 

#创建线程
thread1 = MyThread(1,'Thread-1', 1)
thread2 = MyThread(2,'Thread-2', 2)

#启动线程
thread1.start()
thread2.start()

#等待线程结束
thread1.join()
thread2.join()

print 'exiting main thread'

2)任务函数作为参数传递到Thread方法中

threading.Thread(target=task, args=()).start()

 

未经允许不得转载:演道网 » Python多线程编程

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册