问题记录
1、在for循环下创建线程,会一次性全部创建,消耗内存
import threading
def test():
print('test')
for i in range(1000);
t = threading.Thread(target=test)
# 此时已经新建了1000个线程对象
2、多线程不能同时操作一个类实例
一个类被实例化为一个对象后,该对象的方法不能被多进程,多线程同时调用。
但是,当该方法被赋给一个变量后,就可以被同时调用了。
示例如下:
import threading
class Test(object):
def test():
print('test')
t = Test()
for i in range(4):
t = threading.Thread(target=t.test)
# AttributeError: 'Thread' object has no attribute 'test'
x = t.test
for i in range(4):
t = threading.Thread(target=x)
# ok