JAVA语言规范:线程和锁
原文链接 译者:山鸡 校对:方腾飞
(本文是Oracle 官方《Java语言规范》第十七章译文,有兴趣翻译Java语言规范的同学可以在联系我们。)
JAVA语言规范:线程和锁
概述:
前面章节的大多数讨论,都是关于通过单线程一次执行单个语句或者表达式。而JAVA虚拟机可以支持多线程同时执行。这些线程可以独立执行代码操作,而操作后所产生的值会保留在共享内存当中。单处理器和多处理器都能支持多线程,它们都是通过分配CPU时间片来执行代码。
线程由Thread类表示。用户创建线程的唯一方式是创建此类的一个对象;每个线程和这样的一个对象相关。当在相应的Thread对象上调用start()方法是,一个线程将启动。
线程的行为,特别是当不正确同步时,容易让人混淆和违反直觉。本章节描述了多线程程序的语义,它包含被多线程更新的共享内存的值是否可见的规则。为了规范不同硬件体系结构中比较相近的内存模型,这些被称为JAVA编程语言内存模型。当没有出现混淆时,我们将这些规则简称为“内存模型”。
这些语义没有指示应该如何执行多线程程序。相反,它们描述了允许多线程程序能表现出的行为。任何生成的执行策略允许的行为都是一个可接受的执行策略。
- 同步
- 等待集合和通知
- 休眠和转交
- 内存模型
- Final字段语义
- 字分开
- double和 long 的非原子处理
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: JAVA语言规范:线程和锁
暂无评论