我想實現線程(使用裝飾)到我的應用程序,但無法理解有關鎖和管理線程的一些事情。線程與裝飾
import threading
def run_in_thread(fn):
def run(*k, **kw):
t = threading.Thread(target=fn, args=k, kwargs=kw)
t.start()
return run
class A:
@run_in_thread
def method1(self):
for x in range(10000):
print x
@run_in_thread
def method2(self):
for y in list('wlkefjwfejwiefwhfwfkjshkjadgfjhkewgfjwjefjwe'):
print y
def stop_thread(self):
pass
c = A()
c.method1()
c.method2()
據我瞭解,方法1和method2不同步,但鎖的幫助下實現的那些東西同步。我如何將鎖添加到我的裝飾器函數中?
如何實現使用裝飾器來停止長線程的方法?
它是什麼你想要在兩個線程之間進行同步? – awatts
可能是我說的東西不正確。 我想在某些情況下(並非總是)在1個線程之後運行第二個線程,而不是並行運行。 –
當然,最簡單的方法就是不要在這種情況下在線程中運行代碼。在這種情況下,您可以使用兩種類似的方法,一種在線程中執行任務,另一種執行任務。或者在調用時傳入參數,以指示是否要調用該線程。 – awatts