Python多线程编程

By 刘志军, 2014-02-17, 分类: 默认

python

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

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

创建线程的方式有两种:

1)继承threading.Thread

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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之禅」,回复「1024」免费获取Python资源

python之禅

猜你喜欢

2018-09-27
关于Python包和模块的10个知识清单
2020-06-04
如何用Python执行linux命令
2017-11-03
Python陷阱:为什么不能用可变对象作为默认参数的值
2020-06-07
求求你,别再手工造假数据了,fake了解一下
2020-06-14
python 获取当前时间
2020-06-14
python中如何将字符串转换为整数
2019-03-09
30个Python 小例子,帮你快速上手Python
2020-01-01
Python2.7: 2020年4月还会发布一个版本
2017-02-05
Python 表达式 i += x 与 i = i + x 等价吗?
2018-10-15
提升逼格的两个函数:setdefault 与 defaultdict