1

こんにちは私はPythonを初めて使用し、(Cスタイルで)ループ内に複数のスレッドを作成したいと考えています

for (;i < 10; i++)
 thread[i]= pthread_create(&thread[i],&attr,func)

Pythonで同じことをする方法がわかりませんか?基本的に、グローバルはすべてのスレッドを一度に作成し、次に一度に開始するので、そのthread[]変数が必要です。私はそれを行う同様のPythonプログラムを作成しましたが、上記のスタイルで使用する方が良いと思います。

def thread_create(thread_number):
    command_string = "Thread-" + "%d" %thread_number
    thread = myThread(thread_number, command_string)
    thread.start()

# Start new Threads

for i in range(5):
    thread_create(i)
4

3 に答える 3

1

これが良いと思いますか?

for i in range(5):
    command_string = "Thread-" + "%d" % i
    thread = Thread(i, command_string)
    thread.start()
于 2012-09-20T21:36:43.927 に答える
0

1対1に相当するものが必要な場合は、次のようになります。

threads = []
for i in xrange(10):
    t = Thread(target=aFunc, name="Thread-%d" % i)
    t.start()
    threads.append(t)

または、スレッドオブジェクトを作成し、後で自由に開始したい場合は...

threads = []
for i in xrange(10):
    t = Thread(target=aFunc, name="Thread-%d" % i)
    threads.append(t)

threads[2].start()
于 2012-09-20T21:41:23.640 に答える
0

thread_create関数とリスト内包表記を再利用して、必要なものを取得します。

def thread_create(thread_number):
    command_string = "Thread-" + "%d" %thread_number
    return myThread(thread_number, command_string)
    # start them later


# see note below
threads = [thread_create(x) for x in range(5)]

for t in threads:
    t.start()

ノート:

threads = [thread_create(x) for x in range(5)]

の略記です

threads = []
for x in range(5):
    threads.append(thread_create(x))
于 2012-09-20T21:44:25.597 に答える