python模块学习(threading模块的方法)

学习版本3.5.2

Lock() 创建一个Lock对象并返回

RLock() 创建一个RLock对象并返回

active_count() 返回当前未被阻塞的线程的数量

current_thread() 返回当前的线程对象

enumerate() 返回当前未被阻塞的对象的list

setprofile(func)和settrace(func) 设置一个function在所有的线程对象的run()方法运行之前调用

stack_size(...) 修改创建线程时候使用的栈空间大小,参数为0(使用平台的默认参数或者设置好的参数)或者大于32768(32k)的整数。返回创建线程时候使用的栈空间大小(0(使用平台的默认参数或者设置好的参数))

实验代码:

#/usr/bin/python3
# -*- utf-8 -*-
#学习版本3.5.2

import threading
import time

class Chick(threading.Thread):
    def __init__(self, name=""):
        super(Chick, self).__init__(name=name)
        threading.settrace(funct)
        threading.setprofile(funcp)

    def run(self):
        print(self.getName(),": 等待中")
        time.sleep(3)

def funct(*args):
    print("trace")
    print(args)

def funcp(*args):
    print("profile")
    print(args)

if __name__ == "__main__":
    c1 = Chick(name="A")
    c2 = Chick(name="B")
    c3 = Chick(name="C")
    c1.start()
    c2.start()
    c3.start()
    print(threading.active_count())
    print(threading.current_thread().getName())
    print(threading.stack_size(65536))
    print(threading.stack_size())
    print("main")

运行结果

trace
(, 'call', None)
profile
(, 'call', None)
trace
(, 'call', None)
profile
(, 'call', None)
trace
(, 'call', None)
profile
(, 'call', None)
profile
(, 'return', 'A')
profile
(, 'return', 'A')
profile
(, 'c_call', )
A : 等待中
profile
(, 'c_return', )
profile
(, 'c_call', )
trace
(, 'call', None)
trace
4
(, 'call', None)
MainThread
profile
0
65536
(, 'call', None)
main
profile
trace
(, 'call', None)
(, 'call', None)
profile
...

你可能感兴趣的:(python学习笔记,模块学习)