synchronized相关内容

如何等待,直到要求在dojo完成

我正在为其他开发人员提供基础架构,而我正在使用Dojo。 在我的Init函数中,我使用'require'方法(当然)其中一个参数是所有模块加载后的回调函数。 问题是客户端不想使用回调。他想要打电话给我,并使用我(使我的Init方法同步) - 并且在我们确定完成加载我们的模块后,给他代码。 我的代码 ..
发布时间:2017-06-24 09:32:12 其他开发

如何正确使用同步的链接哈希映射

该地图通过collections.synchronized运行。 地图的所有用法都被同步块包围。如果全部被删除,单元测试也将失败。人们会认为它们不是必需的,因为地图是通过collections.synchronized运行的。 一个线程将顺序号码(0,1,2,3 ...)放入地图。移除通过删除的长者进入处理。没有人从地图中删除条目。 另一个线程从地图获取数据。 以下单元测试 ..
发布时间:2017-05-21 23:49:54 Java开发

正确使用同步单身吗?

所以我正在考虑建立兴趣爱好项目,一件事情,只是为了刷新我的编程/设计。 它基本上是一个多线程Web蜘蛛,更新相同的数据结构object-> int。 所以它对于这个使用数据库绝对是过度的,唯一可以想到的是一个用于包含我的数据结构的线程安全的单例。 http://web.archive.org/web/20121106190537/http://www.ibm.com/developer ..
发布时间:2017-05-12 20:03:30 Java开发

为什么Java构造函数不能同步?

根据 Java语言规范,构造函数不能被标记为同步,因为其他线程不能看到正在创建的对象,直到创建它的线程完成它。这看起来有点奇怪,因为我可以确实有另一个线程查看对象,同时它正在构建: public class Test { public Test(){ final Test me = this; new Thread(){ @Override public void run() ..
发布时间:2016-12-29 16:19:09 Java开发

Lazy初始化Singleton实现而不使用Synchronized Key字

我在面试中被要求建议一个Singleton模式的设计/实现,其中我必须延迟加载类,也不使用同步关键字。我被窒息,无法想出任何东西。然后我开始阅读java并发和concurrentHaspMap。请检查以下内容,并确认您是否看到双重锁定或任何其他问题与此实施的任何问题。 包单身 import java.util.concurrent.ConcurrentHashMap; publ ..
发布时间:2016-12-26 20:35:03 Java开发

Java:当使用锁时,所有可变变量是否需要是volatile?

以下变量x是否需要是易失性的? 或者在utils.concurrent锁中的操作与同步块的功能相同(确保它被写入内存,而不是存储在cpu缓存中)? myMethod(){ myLock.lock(); x ++; myLock.unlock(); } 解决方案 如果他们在没有锁的情况下访问其他地方,则是易失的。例如,作为对大小变量的快速只读访问。锁定方法的 ..
发布时间:2016-12-26 20:15:44 Java开发

限制对方法的并发访问

我有一个限制并发访问方法的问题。我有一个方法 MyService ,可以在很多地方从很多时候调用。此方法必须返回一个 String ,应根据一些规则更新。为此,我有一个 updatedString 类。在获得 String 之前,它确保更新 String ,否则更新它。许多线程可以同时读取 String ,但是ONLY ONE应该同时更新 String ,如果它是已过期。 public f ..
发布时间:2016-12-26 19:51:44 Java开发

Java中的多个对象锁?

锁定私有字段变量(而不是使用锁定对象)是安全/可接受的做法吗?这样,我可以有不同的锁定用于不同的目的。示例如下: class Test { private Integer x = 0; private Integer y = 0; public void incrementX(){ synchronized(x){ x ++; } } public void ..
发布时间:2016-12-26 19:38:17 Java开发

Java线程和同步块

假设我正在一个线程中执行同步代码块,并且在同步块中调用方法,该方法生成另一个线程来处理需要与第一个方法相同的锁的同步代码块。所以在伪Java代码中: public void someMethod(){ synchronized(lock_obj){ / /一大堆东西... //这是块中的最后一个语句 (new Thread(someOtherMethod()))。 } / ..
发布时间:2016-12-26 18:57:39 Java开发

AbstractQueuedSynchronizer在Java中并发

在concurrent.locks包中使用的AbstractQueuedSynchronizer是什么?有人可以对其方法doAcquireInterruptably和parkAndCheckInterrupt? 解决方案 什么是并发的AbstractQueuedSynchronizer。锁包使用 for AbstractQueuedSynchronizer是同步结构的构建块,使 ..
发布时间:2016-12-26 18:52:04 Java开发

在两个线程和主程序之间共享对象

我是Java的新手,我正在参加并发编程课程。我拼命地试图获得一个最小的工作示例,可以帮助演示概念,我学到了像使用'synchronized'关键字和跨线程共享对象。 一直在搜索,但不能得到一个基本框架。 Java程序员,亲切的帮助。 解决方案 这里是一个非常好的例子在两个线程之间共享数组。通常你会看到所有的零,但有时会出现螺旋,你看到其他数字。 final int [] arr ..
发布时间:2016-12-26 18:21:31 Java开发

Java中的并发性使用同步块不能提供预期的结果

下面是一个简单的java程序。它有一个称为“cnt”的计数器,递增,然后添加到名为“监视器”的列表。 “cnt”由多个线程增加,并且值被多个线程添加到“monitor”。 在方法“go monitor.size()应该有相同的值,但他们不。 如果您通过取消注释一个注释的同步块并注释掉当前未注释的代码来更改代码,产生预期结果。此外,如果您将线程计数(THREAD_COUNT)设置为1,代 ..

锁定在一个可变对象 - 为什么它被认为是一个坏的做法?

请参阅此回答。它说: 六个真正糟糕的例子; ... 锁定一个可变字段。例如synchronized(object){object = ...; } 锁定可变字段有什么问题?如果 object 被声明为 final 但是不是一个不可变的类? 解决方案 这是一个坏主意,因为如果另一个线程更改了临界区中的引用,线程将不再看到相同的引用,因此他们不会在同样的对象,从而运行不受控 ..