[八卦] 关于圈子顶部对 D 语言的介绍!
Colorful
2009-04-03
俺对于圈子顶部 D 语言的介绍中,C 语言内存模型一句一直心有疑问。以前分析 D 语言 GC 的时候就觉得这句是对 D 语言最大的误解。直到最近看了 Andrei Alexandrescu 老大的 The Case for D 后更加坚定了俺的看法。
内存模型对于并发和 lock-free 编程至关重要,它是 D 语言针对未来多核并行程序设计的坚实基础,以 C 语言内存模型来看 D ,真的会害死人! 所以俺强烈建议把这句改掉或者直接去掉! |
|
ideage
2009-04-03
赞成!马上修改下.
感谢为D圈子建设积极贡献! |
|
night_stalker
2009-04-03
我也是被误导的那个……
|
|
ideage
2009-04-03
C 语言应用程序二进制接口相兼容
|
|
hqs7636
2009-04-07
说说 d 的内存模型吧
|
|
Colorful
2009-04-07
hqs7636 写道 说说 d 的内存模型吧
D 语言内存模型规范,估计也就 Walter Bright 老大能写出来。 不过总起来说,它不会偏离 CLR 2.0 Memory Model中 x86 行为很远。 你可以参考一下这篇文章,虽然讲的是 .NET,但是跟 D 语言大同小异。 |
|
Colorful
2009-04-07
当然,阅读 Java 内存模型规范也可以。
|
|
hqs7636
2009-04-07
谢谢,
怎么会跟他们差不多?奇怪 |
|
Colorful
2009-04-07
技术都是相通的。
内存模型都是在 CPU 行为基础之上的抽象,而且这项技术已经很多年了。相关的做法在业界也流行了很多年。他们的区别也就是某些细枝末节的不一致。 就像 GC 一样。在 java 语言让 GC 家喻户晓的时候,业界早就做过相当长时间的尝试。 |
|
RednaxelaFX
2009-04-07
因为都涉及到volatile read/write的acquire/release semantics,然后memory barrier之类吧。最重要的原则是优化不能影响状态一致性。
在x86上想故意引发老的Java内存模型(Java 5以前)或者ECMA标准的CLI内存模型(.NET的CLR 2.0以前)的votatile语义带来的错误很困难,所以靠自己很难“看到”出错的状况;不过很难看到并不等于不存在,这种问题真遇到了就郁闷了。 Colorful老大是在哪里读那篇The Case for D来着?也想读读看~ 顺带补充一下Java内存模型的描述:Java Language Specification, 17.4 |
相关讨论
相关资源推荐
- 英语学术论文常用句型
- 115个java面试题(英文)
- PMD笔记-Overridable method 'XXX' called during object construction
- 解决ClassLoader.getSystemResourceAsStream(fileName)无法读取文件,报空问题
- Java ClassLoader getSystemResourceAsStream()方法与示例
- 记录一下遇到的问题(Web)ClassLoader.getSystemResourceAsStream()
- Android ClassLoader之getSystemResourceAsStream源码分析
- Spring Boot项目使用getSystemResourceAsStream()获取资源,本地正常,打包部署后无法获取问题探究
- ClassLoader.getSystemResourceAsStream()
- getSystemResourceAsStream与getResourceAsStream 资源路径