基于Java方法的同步

基于Java方法的同步,java,synchronization,Java,Synchronization,我有一个名为ProcessOrder的公共类。在这个类中,我有一个名为Login()的私有方法,它登录到另一家公司的系统。我希望能够启动任意多个ProcessOrder对象,但是Login()进程需要同步,这意味着所有ProcessOrder对象都需要内联等待处理Login() 设计代码的最佳实践是什么 谢谢,您可以使用同步块,指定要在其上进行同步的对象(这里是ProcessOrder类): 如果您的意思是希望一次只激活一个登录。然后你需要做一个类级的同步,而不是实例级的同步(就像在成员函数上一

我有一个名为ProcessOrder的公共类。在这个类中,我有一个名为Login()的私有方法,它登录到另一家公司的系统。我希望能够启动任意多个ProcessOrder对象,但是Login()进程需要同步,这意味着所有ProcessOrder对象都需要内联等待处理Login()

设计代码的最佳实践是什么


谢谢,

您可以使用同步块,指定要在其上进行同步的对象(这里是ProcessOrder类):


如果您的意思是希望一次只激活一个登录。然后你需要做一个类级的同步,而不是实例级的同步(就像在成员函数上一样)。嗯..我刚刚意识到你要求的是“最佳实践”-请注意,上面的同步与“最佳实践”相差很远…如果你需要在远程服务上进行身份验证(而且,由于您并不是以一种“失火即忘”的方式处理每个呼叫),因此您需要实现一些“会话”的概念,包括超时和(很可能)池
public class ProcessOrder {
   private void login() {
       synchronized(ProcessOrder.class) {
           // one at a time, please
       }
   }
}