0
我正在創建一個類,其中有幾個方法使用線程。我應該把一個線程類放入一個類方法還是放在一個方法外
要使用線程,我經常創建一個線程的子類。我應該在頂層這樣創建Thread:
class mainclass(object):
def __init__(self,):
pass
def method_a(self,):
print('method_a start')
tlist = list(range(10))
ps = [subthread(tlist) for i in range(4)]
for p in ps:
p.start()
for p in ps:
p.join()
print('method_a finish', tlist)
class subthread(threading.Thread):
def __init__(self, alist):
threading.Thread.__init__(self)
self.alist = alist
def run(self,):
while self.alist:
t = self.alist.pop(0)
print(self.getName(), t)
sleep(1)
或進入的方法,使用這樣的:
class mainclass(object):
def __init__(self,):
pass
def method_a(self,):
class subthread(threading.Thread):
def __init__(self, alist):
threading.Thread.__init__(self)
self.alist = alist
def run(self,):
while self.alist:
t = self.alist.pop(0)
print(self.getName(), t)
sleep(1)
print('method_a start')
tlist = list(range(10))
ps = [subthread(tlist) for i in range(4)]
for p in ps:
p.start()
for p in ps:
p.join()
print('method_a finish', tlist)
據我所知,如果我用的是第二,類方法可能會很長, 和似乎jedi.vim無法正常工作。
如果我使用第一個,對於每個類方法,我必須創建一個不同名稱的頂級類,我只能在一個地方使用。
那我該用哪個?
參數'thread_id'解決了我的問題,就是這樣! – jjwt