我正在学习Java并看到一个我不知道如何解决的问题 - 问题是 - '编写一个获取动作的函数,当第一个线程进入函数时 - 它将启用该动作,然后返回true并退出。进入该函数的所有其他线程将等到第一个线程完成它的动作,然后它们将什么都不做并返回false; '
到目前为止我写了这个(在stackoverflow useres的帮助下),但我不知道这些操作是什么以及如何激活它:
public boolean doAction(Action doThis)
{
synchronized (Ex1.lockit) // synchronize on the flag so that other threads arriving here, will be forced to wait
{
if(!flag) // This condition is true only for the first thread.
{
flag = true; //set the flag so that other threads will not invoke doX.
// here I need to activate the action somehow;
return true;
}
}
return false;
}