1

Python を使用してマルチスレッド プログラムをコーディングしようとしています。私はPythonに非常に慣れていないので、あなたに共通することを尋ねたら申し訳ありません.

メインの私のコードは次のとおりです。

multi_threads = []
simulator = Simulation(simulation_number)
    # Simulation is my class, run() is a member function

for i in range(0, thread_number):
    multi_threads.append(Thread(target = simulator.run, args = (start, end,)))

for i in range(0, thread_number):
    multi_threads[i].start()
    multi_threads[i].join()

とでSimulation::un

def run(self, start, end):
    # do something...
    print "in run"
    return

in run数回見られると思います。しかし、何もないことがわかりました。

私が間違っていることを知ってもいいですか?

4

2 に答える 2

0

Here is some complete code:

from threading import Thread

class Simulation(object):
    def __init__(self, n):
        pass

    def run(self, start, end):
        print "Running",start,end

simulation_number=None

start = None
end = None

thread_number=5


multi_threads = []
simulator = Simulation(simulation_number)
# Simulation is my class, run() is a member function


for i in range(0, thread_number):
    multi_threads.append(Thread(target = simulator.run, args = (i, end,)))

for i in range(0, thread_number):
    multi_threads[i].start()
    multi_threads[i].join()

And that does output "Running" for each thread - although in this case each thread runs to completion before the next one is started, so there's no point using threads.

于 2013-08-14T12:53:09.817 に答える
0

.start()スレッドを呼び出す必要があります。だからあなたの場合:

for t in multi_threads:
    t.start()

run を start に変更するように編集しました(コメント者のおかげで、メソッド名を覚えていませんでした)

于 2013-08-14T12:25:25.140 に答える