1
這裏是我的條件:我有兩個線程,t1
和t2
。兩者都在運行。現在,我想通過使用兩個線程調用方法m1()
,但t2
應首先執行m1()
,然後在t2
之後執行t1
。我怎樣才能做到這一點?設置線程優先執行相同的方法
這裏是我的條件:我有兩個線程,t1
和t2
。兩者都在運行。現在,我想通過使用兩個線程調用方法m1()
,但t2
應首先執行m1()
,然後在t2
之後執行t1
。我怎樣才能做到這一點?設置線程優先執行相同的方法
您可以將您的方法設置爲,以便m1()
不能由多個線程同時執行。
_I有兩個線程... _ O.K.,給我們看代碼。您的描述不完全指定代碼的功能。代碼本身毫無疑問。 –
_t2應該首先執行m1(),然後t1將執行..._你是否意味着線程應該按照這個順序執行方法?或者你只是表示你不希望它們都用同一個方法與此同時?使程序以特定順序執行兩個或更多事情的方法是在_one_線程中執行這些操作。 –
此外,如果在需要完成的工作中,哪個線程完成工作並不重要,那麼這是一個更好的設計選擇。基本原則被稱爲「單一責任原則」(SRP)。它說任何給定的類/方法/模塊/任何東西都應該負責。在SRP設計中,您有_task_對象(例如'FoobarTask implements Runnable'),它描述了要完成的工作,並且有'Thread'對象(通常隱藏在_thread池_內)可以執行任務,而無需需要知道什麼是實際的任務。 –