synchronized相关内容

如何在Julia中使用锁

我正在和朱莉娅一起工作. IDE是Juno. 如果我是对的,@async可以生成一个任务,就像一个线程. 因此,我们可以这样做: @async begin # do something1 end @async begin # do something2 end 现在,我需要锁定一个线程.例如,do something1是将消息推送到列表,而do something2是 ..
发布时间:2020-04-25 04:37:05 其他开发

同步Web服务方法是否有意义?

我正在创建一个用Java编写并托管在JBoss AS上的Web服务.我不是Web服务设计专家,但是我能正确获得它吗?每次调用该服务都会启动一个新的 thread 而不是一个新的流程?在我的服务中使用同步方法是否有意义?我需要有一种方法,一次只能为一个用户调用一次,而不能同时为多个用户调用. 解决方案 是的,请求由各个处理程序线程处理.所有JBoss都有一个过程. 如果您的应用程序最终 ..
发布时间:2019-09-02 09:50:42 Java开发

调用Javascript方法是线程安全的还是同步的?

我还是Javascript的新手。我正在开发一个简单的页面,我单击一个按钮来获取servlet上的值并显示它。它运作良好,除非我在按钮上点击疯狂。有时,显示的结果为空。 我想知道这是否是由同时调用相同的以下函数引起的: function loadXMLDoc2(retr){ var xmlhttp; if(window.XMLHttpRequest){ //代码为IE7 +, ..
发布时间:2019-04-27 13:34:58 前端开发

程序停止:wait()和notify()

我试图实现这个目的:创建两个不同的线程,一个打印奇数,一个打印偶数。一旦一个线程打印一个数字,它就必须等待另一个线程,依此类推,即一个接一个。 为实现这一点,我使用的是同步阻塞以及wait()和notify()。 我正在创建一个类,其对象将用于传递给两个线程中的synchronized块。 以下是代码: - >这是用于传递给synchronized块的对象。 pac ..
发布时间:2019-01-08 13:58:55 Java开发

同步与ReadWriteLock性能

我试图证明当有许多读者和只有一些作者时,synchronized会变慢。不知怎的,我证明了相反的情况。 RW示例,执行时间为313毫秒: package zad3readWriteLockPerformance; import java.util.ArrayList; import java.util.Collections; import java.util.Lis ..
发布时间:2019-01-08 12:05:15 Java开发

“同步”真的只是语法糖吗?

我是多线程的新手,我编写了这段代码,通过同时运行线程增量并打印变量来打印数字1-10000。 这是代码我正在使用: package threadtest; 公共类Main { static int i = 0; static Object lock = new Object(); 私有静态类增量器扩展线程{ @Override public void ..
发布时间:2019-01-02 15:31:51 Java开发

为什么Volatile表现得很奇怪

我最近遇到过volatile关键字这种奇怪的行为。据我所知, 对变量应用volatile关键字以反映对$ b数据所做的更改$ b将一个线程的变量放到另一个线程上。 volatile关键字阻止在线程上缓存数据。 我做了一个小测试........ 我使用了一个名为count的整数变量,并使用了volatile关键字。 然后做了两个不同的线程来将变量值增加到10000,所以 ..
发布时间:2019-01-02 14:20:09 Java开发

我们是否需要使用MappedByteBuffer.force()将数据刷新到磁盘?

我正在使用MappedByteBuffer来加速文件读/写操作()。我的问题如下: 我不确定是否需要使用.force()方法将内容刷新到磁盘或不。似乎没有.force(),.getInt()仍然可以正常工作(好吧,因为这是一个内存映射缓冲区,我假设.getInt()从磁盘中获取数据,这意味着数据已被刷新到磁盘已经。 .force()方法是阻塞方法吗? 阻塞方法是一个同步块吗? ..
发布时间:2019-01-02 13:48:41 Java开发

主方法中的同步块

在下面关于线程之间同步的代码中,根据生成的输出,为什么控制被转移到新线程的执行,尽管在main方法中为同一对象“dt”获取了锁? 公共类DemoThread扩展线程{ public DemoThread(){ } public void run(){ int i = 0; synchronized(this){ while(++ i ..

易失性阵列的替代品

从其他问题中,我了解到volatile数组的元素不是volatile。只有引用本身是易失性的。 volatile [] int data; 线程A:数据[4] = 457; 线程B:System.out.println(data [4]); 此处,线程B可能永远不会看到更新的值。 我有哪些选择/替代方案可以达到同样的目的?我想避免同步数组,因为它几乎没有 ..
发布时间:2018-12-29 20:47:06 Java开发

Java 7 Calendar.getInstance,TimeZone.getTimeZone得到同步和缓慢,任何解决方法?

将我的运行时升级到Java 7之后,我看到了令人难以置信的缓慢......我的程序将所有时间花在 SimpleDateFormat 构造函数上。正如这篇文章中所描述的那样: http://coffeedriven.org/?p=83 TimeZone 代码现在检查静态同步方法中是否存在应用程序上下文 getDefaultInAppContext ()。 我的问题是它是 Spring Batc ..
发布时间:2018-12-29 20:41:49 Java开发

java静态同步方法

当两个线程同时使用不同的实例调用静态同步方法时会发生什么?可能吗?对象锁用于非静态同步方法但是什么类型的锁用于静态同步方法? 解决方案 它是一样的在实现该方法的 Class 对象上进行同步,是的,这是可能的,是的,该机制有效地忽略了调用该方法的实例: class Foo { private static synchronized doSomething(){ //同步代码 } ..
发布时间:2018-12-29 20:28:58 Java开发

在java中以原子方式获取多个锁

我有以下代码: 注意:为了便于阅读,我尽可能地简化了代码。 如果我忘了关键任何内容,请告诉我们。 public class User(){ 私人关系; public User(){ relations = new Relations(this); } public getRelations(){ return relations; } } 公共类 ..
发布时间:2018-12-29 20:20:45 Java开发

java中的同步重新排序

众所周知,JVM不应将带有synchronized块的语句重新排序到synchronized块之外。考虑到这一点,JVM是否允许在以下代码段中的 synchronized 块之后重新排序分配 y = 7 ? x = 5; y = 7; synchronized(this){ x = 6; } 我们知道同步块之前的变量赋值可以重新排序在内部块。因此,以下内容应该 ..
发布时间:2018-12-29 19:57:17 Java开发

局部变量同步的必要性

在JSON-java库中( org.json.JSONArray )我有在方法局部变量周围找到了带有 synchronized 块的代码片段 public String toString(int indentFactor)throws JSONException { StringWriter sw = new StringWriter(); synchronized(sw.getBu ..
发布时间:2018-12-28 21:51:24 Java开发

我应该同步监听器通知吗?

我总是非常犹豫要把我的锁公开,让它们公开。我总是试图将锁限制在我的实现中。不这样做,是一个死锁的秘诀,我相信。 我有以下课程: class SomeClass { protected ArrayList mListeners = new ArrayList(); protected void addListener(Listene ..
发布时间:2018-12-28 15:57:19 Java开发

Thread.sleep()在java中同步

当调用Thread.sleep(10000)时,当前线程将进入休眠状态。 如果在同步方法中调用Thread.sleep(10000)是否其他线程可以在该时间段内执行? 解决方案 如果您在同步方法或块中执行 Thread.sleep(10000),则不释放锁定。因此,如果其他线程正在等待该锁定,则它们将无法执行。 如果您想等待指定的时间来发生某种情况,释放你需要使用的对象锁 Obje ..
发布时间:2018-12-28 15:55:38 Java开发

为什么调用方法的Java字节码隐式获取和释放监视器?

我一直在阅读 Java虚拟机指令集并注意到当使用指令来调用标记为同步的方法(例如invokestatic,invokevirtual等)时,由特定的字节码指令来获取接收器对象上的监视器。类似地,从方法返回时,由方法同步时指令释放监视器的指令。这看起来很奇怪,因为有明确的monitorenter和monitorexit字节码来管理监视器。 JVM是否有特殊原因以这种方式设计这些指令,而不是仅仅编译方 ..
发布时间:2018-12-27 19:13:43 Java开发