尝试针对java 1.7编译我的应用程序我发现在javax.sql.CommonDataSource中添加了一个新方法(在jsDataSource中也是如此) - .getParentLogger()
.您可以将CommonDataSource:1.7与CommonDataSource进行比较:1.6
对我来说,这种变化肯定会破坏向后兼容 例如,我的应用程序(包含DataSource的实现)甚至不会在没有代码更改的情况下针对1.7进行编译.
根据我的观点,这应该是非常有力的理由 - 但我不能google甚至一个.有人可以解释这种变化背后的原因吗?应该如何处理它 - 对我而言,这是我第一次遇到与java的向后不兼容,所以我这里没有任何"最佳实践"......
AtomicXXX.lazySet(value)方法在大多数JMM推理中使用的前沿边缘是什么意思?javadocs是纯粹的,Sun bug 6275329声明:
语义是保证写入不会与任何先前的写入重新排序,但可以与后续操作重新排序(或者等效地,可能对其他线程不可见),直到发生一些其他易失性写入或同步动作).
但这不是关于HB边缘的推理,所以它让我感到困惑.这是否意味着什么lazySet()语义不能用HB边缘表示?
更新:我会尝试将我的问题具体化.我可以在以下场景中使用普通的volatile字段:
//thread 1: producer
...fill some data structure
myVolatileFlag = 1;
//thread 2: consumer
while(myVolatileFlag!=1){
//spin-wait
}
...use data structure...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在消费者中使用"数据结构"是正确的,因为易失性标志写入读取使得HB边缘,从而保证生产者对"数据结构"的所有写入都将完成,并且消费者可以看到.但是如果我在这种情况下使用AtomicInteger.lazySet/get而不是volatile写/读怎么办?
//thread 1: producer
...fill some data structure
myAtomicFlag.lazySet(1);
//thread 2: consumer
while(myAtomicFlag.get()!=1){
//spin-wait
}
...use data structure...
Run Code Online (Sandbox Code Playgroud)
它仍然是正确的吗?消费者线程中的"数据结构"值可见性真的可以吗?
它不是"来自空中"的问题 - 我在LMAX Disruptor代码中看到了这种方法正好在这种情况下,我不明白如何证明它是正确的......
我正在尝试使用内嵌图像(例如通过 gnuplot 绘制数据),但遇到了问题:默认情况下,图像始终作为链接插入。我需要做一些按键来“强制”emacs 显示实际图像内联,而不仅仅是文件链接。
例如,我从 gnuplot 代码开始:
#+BEGIN_SRC gnuplot :file plot.png
plot sin(x)
#+END_SRC
Run Code Online (Sandbox Code Playgroud)
当我按下C-c C-c
此代码块时,它会运行,并将结果显示为图像文件的链接:
#+RESULTS:
[[file:plot.png]]
Run Code Online (Sandbox Code Playgroud)
C-c C-x C-v
(org-toggle-inline-images) 两次 - 链接确实替换为内联图像M-x org-redisplay-inline-images
再次运行- 链接确实替换为图像(org-display-inline-images t t)
再次运行- 会显示图像等等(这些选项取自Emacs org-display-inline-images和Inline images in org-mode questions)
但我不想按任何特别的东西:我希望图像默认内联显示。我发现并尝试了以下变量:
(setq org-startup-with-inline-images t)
在.emacs
配置中#+STARTUP: inlineimages
标题(setq org-display-inline-images t)
但两者都没有让我得到我想要的行为。我很困惑——我想要这么不自然的东西吗?
PS Im' 在 MacOS X 上使用 GNU Emacs v26.1,组织模式 v9.1.9-65,如果重要的话
PPS 虽然它看起来像是我的 emacs/orgmode 版本中的一个错误,我还没有报告它,但同时我发现了以下技巧:( …
我希望IntellJ IDEA中的"运行"配置具有预定义的一些Java系统属性(普通且简单的任务).但由于某些原因,我需要设置一些属性来清空字符串 - 这在IDEA中并不那么容易:
-Dmy-property=abd
-Dmy-property2=
-Dmy-property3=afd
Run Code Online (Sandbox Code Playgroud)
如果我在"系统属性"输入中输入它,它将被转换为
-Dmy-property=abd
-Dmy-property2=-Dmy-property3=afd
Run Code Online (Sandbox Code Playgroud)
IDEA删除了"未使用"的空格.这是不可取的.目前我只能通过将空属性移动到列表的末尾来解决这个问题.有没有其他方法可以输入emtpy属性值?