Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。
更多方法:
start 线程准备就绪,等待CPU调度
setName 为线程设置名称
getName 获取线程名称
setDaemon 设置为后台线程或前台线程(默认)
如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,均停止
如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完后,等待前台线程也执行完成后,程序停止
join 逐个执行每个线程,执行完毕后继续往下执行,该方法使得多线程变得无意义
run 线程被cpu调度后执行Thread类对象的run方法
例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import
threading
import
time
def
show(arg):
time.sleep(
1
)
print
‘thread‘
+
str
(arg)
for
i
in
range
(
10
):
t
=
threading.Thread(target
=
show, args
=
(i,))
t.start()
print
‘main thread stop‘
线程锁
如果同一时间有多个线程操作同一数据可能会出现混乱现象,所以需要加线程锁保证同一时间只有一个线程操作这一数据,保证数据一致性
加锁:lock = threading.RLock() 解锁:lock.release()
lock.acquire()
#!/usr/bin/env python
#coding:utf-8
import
threading
import
time
gl_num
=
0
lock
=
threading.RLock()
def
Func():
lock.acquire()
global
gl_num
gl_num
+
=
1
time.sleep(
1
)
print
gl_num
lock.release()
for
i
in
range
(
10
):
t
=
threading.Thread(target
=
Func)
t.start()
本文出自 “纷繁中享受技术的简单喜悦” 博客,请务必保留此出处http://51enjoy.blog.51cto.com/8393791/1751424
原文地址:http://51enjoy.blog.51cto.com/8393791/1751424