小编Rob*_*her的帖子

为什么类结构语言中的构造函数通常被视为线程安全?

(我希望我可以为实现线程的所有类构造语言标记这个问题,但是这里有Java,C++,C#和Ruby.不是我对所有这些都很酷)

我想我已经在博客文章/教程上看到过这种效果的陈述(类构造函数是线程安全的).我无法追踪任何直接的陈述,但许多帖子和教程都做出了假设,或者甚至没有提到在构造函数和析构函数上运行的线程问题.坚持Java,它有一个历史和一些正式的多线程方法,

Javamex

扬科夫的教程

Oracle教程

所有这些文章/网页都以自信的方式编写,并包含全面的讨论.他们都提到了方法同步的Java特性,所以你希望他们可能会提到这会如何影响构造和破坏的特殊方法.但他们没有.

但类构造函数和析构函数需要像任何类方法一样考虑.这是一篇关于Java的文章,

Java中的安全构造技术

关于从构造函数泄漏'this'引用.这里有几个StackOverflow帖子,

Java中不完整构造的对象,

Java构造函数需要锁定

显示具有线程问题的构造函数.我怀疑特殊方法中的线程问题仅限于Java.

所以,我想知道,

  • 是否基于构造函数的总体布局假设了线程安全(无论如何定义)?一个代码不多的紧密编码的构造函数将接近可重入代码(通过参数接受数据等)

  • 或者口译员/编制者是否处理具有特殊待遇或保护的施工人员/破坏者?例如,Java内存模型在构造结束时对期望做出一些评论,我希望其他语言规范也是如此.

维基百科关于构造函数的内容很少.在不同的上下文中,这篇文章中的构造语言中的构造函数包含一些提示,但不是关于线程安全性.

虽然在专业书籍中有许多信息,但是对StackOverflow进行一般性(尽管语言特定的提及很有趣!)解释/讨论会很好.

c# c++ ruby java

2
推荐指数
1
解决办法
134
查看次数

标签 统计

c# ×1

c++ ×1

java ×1

ruby ×1