我有一个项目需要不时登录我的路由器并进行一些更改。在 Eclipse 中,我有一个单独的项目来处理我需要更改的所有内容,并且我在我的主项目的构建路径中拥有它,这是一个多线程项目。我的问题是,有时两个线程试图访问路由器,这把事情搞砸了。有什么我可以做的,只有一个线程可以访问我的代码的特定部分。
这是主多线程应用程序的相关代码
if (totalLogins > 10)
{
IpManager.rebootRouter();
Thread.sleep(4000);
totalLogins = 0;
composedMessagesWithThisIP = 0;
}
在另一个项目中,这就是我所拥有的
public synchronized static void rebootRouter()
{
try
{
//code related to restart modem
}
catch (Exception e)
{
}
}
所以我所做的是使方法同步,但我相信不时有多个线程访问“rebootRouter”方法。这会导致我的主要应用程序出现问题。
使 IpManager.rebootRouter() 仅由一个线程执行的最佳方法和最有效的方法是什么?
问候!