我正在尝试使用Servlets(resteasy+Hibernate)实现一个约会队列。我的约会控制器如下(当然是简化的)。
public class AppoController{
public synchronized static int createAppoinment(AppObj app){
//get last app no
//insert new app with no+1
//return new app no
}
}
目前这种方法工作良好。但我读过关于BlockingQueue实现的文章,哪种方法似乎是正确的?
工作细节的定义:
如果不使用同步静态并同时发送多个请求,则多个约会具有相同的约会编号
但如果使用同步静态,则以正确顺序创建的约会
我需要澄清的是;
-这是正确的方法吗?
-在我的场景中使用同步静态实现和BlockingQueue实现的优缺点是什么。
任何其他您认为相关的投入也是欢迎的。多谢了。
您的实现确实有效。synchronized方法在任何时候只能由一个线程执行。Tomcat将使用多个线程(具体情况取决于当前的设置,假设每个请求有一个线程),因此每个并发请求都将获得自己的线程,然后请求会等待这些方法,直到其线程被允许进入该方法。
根据你的需要,我有两个选择。
问题内容: GlobalVariables类包含在我的框架中使用的不同变量,其中之一是WebDriver实例: GlobalInitializer包含用于初始化所有GlobalVariable的方法: //一些其他方法来初始化其他全局变量。} 我有许多GetElement类,它们使用驱动程序实例获取UI控件元素,例如: 我还有其他类在UI控件上执行一些操作(此类也使用全局变量),例如: 我在tes
主要内容:1 什么是Java静态同步方法,2 没有静态同步方法的问题,3 静态同步方法的例子1,4 静态同步方法的例子21 什么是Java静态同步方法 如果将任何静态方法设置为synchronized(同步),则锁定的是类而不是对象。 2 没有静态同步方法的问题 假设有两个共享类(例如:Table类)的对象,分别名为object1和object2。在使用同步方法和同步代码块的情况下,t1和t2或t3和t4之间不会存在干扰,因为t1和t2都引用了一个具有单个锁,但是t1和t3或t2和t4之间可能存
问题内容: 这是我在此链接上找到的一段文字。 “避免锁定静态方法 最糟糕的解决方案是将“ synchronized”关键字放在静态方法上,这意味着它将锁定此类的所有实例。” 为什么同步静态方法会锁定该类的所有实例?它不应该锁定课程吗? 问题答案: 这是我的测试代码,表明您是正确的,并且本文有点过分谨慎: 印刷品: 因此与实例的方法无关… 当然,如果整个系统都使用这些方法,那么您可以期望它们对多线程
当两个线程同时使用不同的实例调用静态同步方法时会发生什么?可能吗?对象锁用于非静态同步方法,但静态同步方法使用什么类型的锁?
本文向大家介绍java synchronized同步静态方法和同步非静态方法的异同,包括了java synchronized同步静态方法和同步非静态方法的异同的使用技巧和注意事项,需要的朋友参考一下 java synchronized 详解 synchronized关键字有两种用法,一种是只用于方法的定义中,另外一种是synchronized块,我们不仅可以使用synchronized来同步一个对
尝试可视化和理解同步。 对同步块使用静态锁定对象(代码a)和非静态锁定对象(代码B)之间有什么区别 它在实际应用中有什么不同 一方会有哪些陷阱而另一方不会 确定使用哪一个的标准是什么 代码A 代码B 笔记 上面的代码显示了构造函数,但是您可以讨论静态方法和非静态方法中的行为是如何不同的。另外,在同步块修改静态成员变量时使用静态锁是否有利? 我已经看过了这个问题的答案,但是还不清楚不同的使用场景是什