- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在写一个翻译器,并且有相当多的 java String 文字供翻译器使用。我有我自己的非阻塞线程安全分词器,它比 java.util.regex.Matcher 对于困难任务更快,并且与 Matcher 类不同,它是不可变的,因此我的分词器/Matcher 可以像不可变的最终类一样在多个线程之间共享正在做翻译。
匹配器类需要一个类似 CharSequence 的专用字符串类,但要针对我的分词器进行调整。我的 sequence/stringvariant 的一个子类是不可变的,它是从 java.lang.String 构造的,因此我的一个由多个线程共享的翻译器单例具有一个将 String 映射到 MyString 的内部 HashMap 。我想实习我的不可变分词器中使用的不可变字符串变体,因为许多文字都是相同的。
所以我有一个实习 hashmap 但不幸的是它被其他几个类的静态初始化程序添加到,因此这听起来像一个不是线程安全的映射。我如何在不阻塞 gets from it 的情况下逐步构建这个实习 map ?我也不想使用非阻塞并发 HashMap 。目标,只是一个普通的 HashMap。
安迪
最佳答案
it is being added to by the static initializers of several other classes,
这是一个问题,至少在 Java 6 中是这样。根据 "Initialization Problems for Java"
Concurrent initialization in Java may deadlock. If two threads initialize two dierent classes concurrently and both threads detect a rst active use of a component of the other class, then both threads become blocked, because they both wait that the respective other thread nishes its initialization.
所以类初始化锁是针对每个类的,可以可靠地防止过度初始化,但是可以同时初始化两个不同的类。
我会使用 ConcurrentMap
如果您在其中放入很多值,或者如果它可能有很多读者但很少有作者,则可能在互斥量内复制写入并替换,因为分配给字段是原子的。
关于java - 实习非线程安全字符串变体和静态初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9067029/
我想成为 Spark 纱客户(link)。是否需要安装hadoop?还是只安装 yarn 可以吗? (by this link) 最佳答案 No Spark不需要Hadoop即可运行。 Apache
我是一名优秀的程序员,十分优秀!