2016-02-20 28 views
1

这里是我的条件:我有两个线程,t1t2。两者都在运行。现在,我想通过使用两个线程调用方法m1(),但t2应首先执行m1(),然后在t2之后执行t1。我怎样才能做到这一点?设置线程优先执行相同的方法

+0

_I有两个线程... _ O.K.,给我们看代码。您的描述不完全指定代码的功能。代码本身毫无疑问。 –

+0

_t2应该首先执行m1(),然后t1将执行..._你是否意味着线程应该按照这个顺序执行方法?或者你只是表示你不希望它们都用同一个方法与此同时?使程序以特定顺序执行两个或更多事情的方法是在_one_线程中执行这些操作。 –

+0

此外,如果在需要完成的工作中,哪个线程完成工作并不重要,那么这是一个更好的设计选择。基本原则被称为“单一责任原则”(SRP)。它说任何给定的类/方法/模块/任何东西都应该负责。在SRP设计中,您有_task_对象(例如'FoobarTask implements Runnable'),它描述了要完成的工作,并且有'Thread'对象(通常隐藏在_thread池_内)可以执行任务,而无需需要知道什么是实际的任务。 –

回答

1

您可以将您的方法设置为​​,以便m1()不能由多个线程同时执行。