2 ailin0115 ailin0115 于 2016.03.31 10:40 提问

struts2 实现一个同步方法的问题?

现在有一个业务逻辑是页面点击【执行】完成所有操作之后。下一个人才能再执行。
第一个人执行过程中,第二个人点击执行需要等第一个人执行完毕之后,才能执行。
struts2的action是多例的,在方法上加synchronized是不是无法实现这个功能?
有没有比较好的办法实现这种需求。请赐教

2个回答

zhangyong329
zhangyong329   2016.03.31 11:34

synchronized method(){}可以防止多个线程同时访问这个对象的synchronized方法
(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象
中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时
访问相同类的另一个对象实例中的synchronized方法;
synchronized static method{}防止多个线程同时访问这个类中的synchronized static 方法。
它可以对类的所有对象实例起作用。
在网上看到有这么说的,不知道是否对你有帮助!

ailin0115
ailin0115 多谢,可以试一下。
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2016.03.31 16:22

struts2中文乱码问题的解决方法
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
用多进程同步方法解决生产者-消费者问题
这是一个操作系统的课程设计 ,关于在linux下用多进程同步方法解决生产者-消费者问题。 有论文和源码
java有几种方法可以实现一个线程?用什么关键字修饰同步方法?
java多线程实现方法主要有3种:继承Thread类、实现Runnable接口和使用ExecutorService、callable、future实现有返回结果的多线程。其中前2方式线程执行完后都没有返回值,只有最后一种有返回值。继承Thread类启动线程的唯一方法是通过Thread类的start()实例方法。start()方法是一种native方法,它将启动一个新线程并执行run方法。这种方法通
java中有几种方法可以实现一个线程?用什么关键字修饰同步方法 stop()和suspend()方法为何不推荐使用?
java5以前,有两种实现方法,分别使用new Thread()和new Thread(runnable)形式,第一种继承Thread类,直接调用thread的run方法,所以,我们往往使用Thread子类,即new SubThread()。第二种是实现Runnable接口,调用runnable的run方法。第一种: new Thread(){}.start();这表示调用Thread子类对象的ru
java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此
关于单例模式中线程同步的方法(同步块和同步方法)
出于方便,引用了之前单例模式(懒汉模式)的源码进行的改进,做于个人笔记记录 package Sys; /**  * 单例设计模式  * 确保一个类只有一个对象  * @author Administrator  *  */ public class SingletonPattern {  public static void main(String[] args) {
用多进程同步方法演示“生产者-消费者”问题
用多进程同步方法演示“生产者-消费者”问题 1、设计目的:通过研究Linux的进程机制和信号量,实现生产者消费者问题的并发控制。 2、说明:有界缓冲区内设有20个存储单元,放入取出的产品设定为1-20个整数。 3、设计要求: 生产者和消费者进程的数目不固定,可在程序界面上设置 生产者和消费者进程的数目在程序界面上可调,在运行时可随时单个增加与减少生产者与消费者 生产者的生产速度与消费者的消费速度均可在程序界面调节,在运行中,该值调整后立即生效 生产者生产的产品由随机函数决定 多个生产者或多个消费者之间必须有共享对缓冲区进行操作的函数代码 每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前生产者与消费者的指针位置,以及生产者和消费者线程标识符 采用可视化界面,可在运行过程中随时暂停,查看当前生产者、消费者以及有界缓冲区的状态
C#之线程同步方法
目的在于需要控制一个服务器对于客户端的多线程使用的共享资源的控制 毕设聊天室中使用了一个链表将多个客户端的信息保存了起来 在用户需要交互操作的时候需要使用这个链表 主要锁起来的地方在于链表元素的插入和删除 也就是用户的登陆以及退出 转自 http://www.cnblogs.com/xugang/archive/2011/03/20/1989782.html 本文主要描述在C#
多线程同步中的读者写者问题 - linux 平台实现
<br /><br />linux 平台下的实现与 windows 很相似,只有一些代码上的小的差别。<br />1: ReaderWriterLock.h, 该文件定义了读写锁的类<br />#ifndef ReaderWriterLock_H<br />#define ReaderWriterLock_H<br />#include <bits/pthreadtypes.h><br />#include <semaphore.h><br />class ReaderWriterLock<br />{<b
java中的线程同步实现方法一(将方法设置为synchronized)
一. 简要说明:  对于java中的线程同步来说,可以用synchronized关键字来修饰,既可以对方法进行修饰,也可以对变量进行修饰,而二者都可以实现线程的同步。本篇说的是第一种方法,第二种方法在下一篇中说明。 二. 例子:     AccountRunnable.java: public class AccountRunnable implements Runnable { pri
三种方式实现多线程同步问题
1使用互斥量和事件对象实现线程同步的代码 #include #include DWORD WINAPI Fun1Proc( LPVOID lpParameter // thread data ); DWORD WINAPI Fun2Proc( LPVOID lpParameter // thread data ); int tickets = 100; //HANDLE