0 0

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

如题!
怎样保证JaveBean里的某个方法只能被一个用户调用?synchronized?Singleton?
2008年8月12日 23:26

3个答案 按时间排序 按投票排序

0 0

采纳的答案

1.
直接将方法定义为synchronized的.

	public synchronized void method1() {
         // ...
	}


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

	public void method2() {
		synchronized (lock) {
                      // ...
		}
	}

2008年8月13日 00:14
0 0

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

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


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

示例代码:

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.
      }
   }
}


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

2008年8月13日 09:31
0 0

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

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

2008年8月13日 00:13

相关推荐

    自动创建javebean

    一个典型的JavaBean包括私有字段、公共的getter和setter方法,并且可以通过构造函数初始化这些字段。在企业级应用开发中,JavaBean经常作为持久化对象使用,负责在应用程序和数据库之间传输数据。 **Hibernate**是...

    简单的超市进销系统,使用Servlet+Jsp+JaveBean实现.zip

    简单的超市进销系统,使用Servlet+Jsp+JaveBean实现 简单的超市进销系统,使用Servlet+Jsp+JaveBean实现 简单的超市进销系统,使用Servlet+Jsp+JaveBean实现 简单的超市进销系统,使用Servlet+Jsp+JaveBean实现 简单...

    javabean+jsp完成注册验证

    在Java Web开发中,"javabean+jsp"是一个常见的技术组合,用于构建动态网站应用程序。这个小实例展示了如何利用这两个技术进行用户注册验证。在这个过程中,JavaBean作为业务逻辑层,负责处理数据验证和存储,而JSP...

    毕业设计基于Myeclipse+javebean+oracle数据库的电信报表系统

    【标题】"基于Myeclipse+javebean+oracle数据库的电信报表系统" 是一个典型的Java Web项目,旨在实现电信行业的数据报表生成与管理。Myeclipse作为开发工具,提供了集成开发环境,支持Java、JSP、Servlet等技术,...

    javeBean实现文件的上传

    - **作用**:创建一个临时文件,用于存储上传过程中的文件数据。 - **实现**: - 定义临时文件名`tempFileName`。 - 使用`File`构造器创建临时文件实例`tempFile`。 ##### 6. 文件流操作 ```java ...

    javebean工具

    这个插件的第一版大概是在两年多前写的,中间一直都有零碎升级,但从来没有写过安装使用说明(我个人认为很简单的)。 支持功能: 1、 支持oracle 和 mysql 两种数据库。 2、 支持oracle指定表空间生成。 3、 支持...

    WebService之AXIS传递javabean.7z

    AXIS是Apache软件基金会的一个开源项目,它提供了一个强大的SOAP(Simple Object Access Protocol)客户端和服务端实现,用于构建和消费Web服务。 在Java世界中,当我们需要通过WebService传递复杂的数据结构时,...

    jsp+servlet+javabean客房管理系统

    【jsp+servlet+javabean客房管理系统】是一个基于Web的软件解决方案,用于高效管理酒店或宾馆的客房状态、预订、入住、退房等业务流程。这个系统的核心技术栈包括JavaServer Pages (JSP)、Servlet以及JavaBeans,...

    基于Servlet+Jsp+JaveBean实现简单的超市进销系统源码.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为...基于Servlet+Jsp+JaveBean实现简单的超市进销系统源码.zip

    Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作1

    例如,Servlet可能会创建一个新的`StudentDAO`实例,调用`getStudentById()`方法获取指定ID的学生信息,然后将这些信息填充到一个`Student`对象中。最后,Servlet可以将这个Java Bean传递给JSP页面,JSP通过EL...

    jsp+mysql+javabean电子商城

    【标题】"jsp+mysql+javabean电子商城"是一个基于Web的电子商务平台,它结合了JavaServer Pages(JSP)、MySQL数据库以及JavaBean技术来实现动态网站功能。这个大型购物和新闻系统提供了完整的在线购物体验,包括...

    JSP与JavaBean应用实例-猜数字游戏

    - **控制流**:JSP中的脚本元素(scriptlets)可以处理用户交互,比如当用户点击“提交”按钮时,调用JavaBean的方法进行逻辑判断。 3. **JSP与JavaBean的交互** - **请求处理**:在JSP中,通过`<jsp:useBean>`...

    批量转换json到java类工具

    将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java...

Global site tag (gtag.js) - Google Analytics