-8

2つのスレッドを作成します(T1とT2とします)。 T1は「私はT1です」を、T2は「私はT2です」を印刷する必要があります。メインスレッド(T1とT2を作成するスレッド)はそれらを待つ必要があります。 o共有変数xは10に初期化する必要があります。T1はxを5だけ増やし、xは100をxだけ増やす必要があります。o次に、T1とT2が完了した後、メインプロセスは「私はメインスレッドです。 2つのスレッドが完了しました "。また、メインスレッドはxの最後の値を出力しなければなりません。2つのスレッドを作成する

+1

これは宿題のようです。あなたが私たちにあなたの仕事をさせようとしていますか?あなたはまだ自分のコードを書いたことがありますか?もしそうなら、それをあなたの投稿に追加して、あなたがそれを持っている問題を教えてください。 – user3030010

+0

@Ahmadは、あなたのコードの大まかな概要を何かを試してみると、stackoverflowへようこそ –

+0

Okは2つのスレッドを作成します。 – Inconnu

答えて

0

私はあなたの質問があります正確に何を知っているが、私は試してみましょうしないでください:

  1. あなたはT1を作成する必要があるとT2
  2. T1、T2は「私が..」印刷する必要がありますコンストラクタにmesages
  3. これらの二人がメインスレッドを印刷メッセージを指定
  4. xの値を印刷するメインスレッドの必要性が行われた後
  5. 両方のスレッドが同じx変数次いで
  6. を増加すべきである

ここにある:

import threading 

x = 10 

class T1 (threading.Thread): 
    def __init__(self): 
     super(T1 , self).__init__(name="T1 thread") 
     print 'I am T1' 

    def run(self): 
     global x 
     x += 5 


class T2 (threading.Thread): 
    def __init__(self): 
     super(T2 , self).__init__(name="T2 thread") 
     print 'I am T2' 

    def run(self): 
     global x 
     x += 100 

t1 = T1() 
t2 = T2() 

t1.start() 
t2.start() 

while t1.is_alive() or t2.isAlive(): 
    pass 

print "t1 and t2 are done" 
print x 

あなたが任意のリストを使用するふり場合は動作するはず任意のリストの種類やデータ構造を使用しますが、このリンクをチェックするために覚えていないことから、ライン、スタック等 Python Multithreaded Programming

0

これは動作するはずです。

import threading 
x = 10 
def prints(Text,increment): 
    global x 
    print Text 
    x += increment 

thread1 = threading.Thread(target=prints, args=("I am T1\n",5)) 
thread2 = threading.Thread(target=prints, args=("I am T2\n",100)) #Create threads and pass arguments to function 
thread1.start() 
thread2.start()    #Start threads 

thread1.join()  #Wait until thread1 has finished execution 
thread2.join()  #Wait until thread2 has finished execution 
print "I am the main thread, the two threads are done" 
print x 
raw_input("") #Just to prevent window from closing 
関連する問題