2 つのスレッドを実行しようとしていますが、それぞれに引数が渡されて処理されます。ただし、スレッドは並列ではなく順次実行されているようです。目撃者:
$ cat threading-stackoverflow.py
import threading
class CallSomebody (threading.Thread):
def __init__(self, target, *args):
self._target = target
self._args = args
threading.Thread.__init__(self)
def run (self):
self._target(*self._args)
def call (who):
while True:
print "Who you gonna call? %s" % (str(who))
a=CallSomebody(call, 'Ghostbusters!')
a.daemon=True
a.start()
a.join()
b=CallSomebody(call, 'The Exorcist!')
b.daemon=True
b.start()
b.join()
$ python threading-stackoverflow.py
Who you gonna call? Ghostbusters!
Who you gonna call? Ghostbusters!
Who you gonna call? Ghostbusters!
Who you gonna call? Ghostbusters!
Who you gonna call? Ghostbusters!
Who you gonna call? Ghostbusters!
Who you gonna call? Ghostbusters!
Ghostbusters!
一部の行が返され、他の行が返されると予想されますがThe Exorcist!
、Ghostbusters!
行は永遠に続きます。各スレッドにプロセッサ時間を確保するには、何をリファクタリングする必要がありますか?