怎样保证JaveBean里的某个方法只能被一个用户调用?

如题!
怎样保证JaveBean里的某个方法只能被一个用户调用?synchronized?Singleton?

1.
直接将方法定义为synchronized的.
[code="java"] public synchronized void method1() {
// ...
}[/code]

2.
在方法体内部要求先获得一个对象锁.
[code="java"] private Object lock = new Object();

public void method2() {
    synchronized (lock) {
                  // ...
    }
}[/code]

实现线程安全:
最基本的办法就是synchronized关键字...Singleton模式也是基于synchronized关键字的.

关于实现线程安全的具体方法.下面这个问题里面已经讲得很详细了.
楼主可以参考一下:[url]
http://www.iteye.com/problems/2641[/url]

单例模式Singleton是用来保证系统中只产生该对象的一个实例。虽然多线程环境下的单例模式需要使用同步synchronized,但楼主的问题好象跟单例没有直接关系。

关于单例模式,网上很多地方都有讨论,我博客也有一篇关于此问题的讨论:
http://zhaipuhong.iteye.com/blog/214675

JaveBean里的某个方法只能被一个用户调用,应该是同步的问题。
“在 Java 编程中,所有的对象都有锁。线程可以使用 synchronized 关键字来获得锁。在任一时刻对于给定的类的实例,方法或同步的代码块只能被一个线程执行。这是因为代码在执行之前要求获得对象的锁。继续我们关于复印机的比喻,为了避免复印冲突,我们可以简单地对复印资源实行同步。如同下列的代码例子,任一时刻只允许一位职员使用复印资源。通过使用方法(在 Copier 对象中)来修改复印机状态。这个方法就是同步方法。只有一个线程能够执行一个 Copier 对象中同步代码,因此那些需要使用 Copier 对象的职员就必须排队等候。 ”

示例代码:
[code="java"]
class CopyMachine {

public synchronized void makeCopies(Document d, int nCopies) {
//only one thread executes this at a time
}

public void loadPaper() {
//multiple threads could access this at once!

  synchronized(this) {
     //only one thread accesses this at a time
     //feel free to use shared resources, overwrite members, etc.
  }

}
}
[/code]

关于同步的问题,确实很复杂,而且Jdk5.0在多线程编程上增加了一些新特性。楼主有兴趣可以参阅一下《JAVA核心技术 II》第七版,第一章。