-8

創建兩個線程(讓我們稱它們爲T1和T2)。 T1應打印「我是T1」,T2應打印「我是T2」。主線程(創建T1和T2的線程)應該等待它們。 o應該有一個共享變量x,它初始化爲10.T1應該使x增加5,T2應該增加x 100.然後,在T1和T2完成後,主進程應該打印出「我是主線程,兩個線程完成「。另外,主線程應該打印x的最後一個值。創建兩個線程

+1

這聽起來像是一個家庭作業問題。你是否想讓我們爲你做你的工作?你甚至還寫過你自己的代碼嗎?如果是這樣,請將其添加到您的帖子中,並告訴我們您有什麼問題。 – user3030010

+0

@Ahmad歡迎來到stackoverflow,你有嘗試的東西,也許你的代碼粗略輪廓 –

+0

好吧創建兩個線程。 – Inconnu

回答

0

我不知道到底什麼是你的問題,但讓我試試:

  1. 您需要創建T1和T2
  2. T1和T2應打印「我..」在構造函數
  3. mesages
  4. 兩個線程應該增加相同的x變量
  5. 再經過那兩個傢伙完成主線程打印一個mesage
  6. 主線程需要打印的x值

那就是:

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