JAVA语言规范:线程和锁

原文链接? 译者:山鸡 校对:方腾飞

(本文是Oracle 官方《Java语言规范》第十七章译文,有兴趣翻译Java语言规范的同学可以在联系我们。)

JAVA语言规范:线程和锁

概述:

前面章节的大多数讨论,都是关于通过单线程一次执行单个语句或者表达式。而JAVA虚拟机可以支持多线程同时执行。这些线程可以独立执行代码操作,而操作后所产生的值会保留在共享内存当中。单处理器和多处理器都能支持多线程,它们都是通过分配CPU时间片来执行代码。

线程由Thread类表示。用户创建线程的唯一方式是创建此类的一个对象;每个线程和这样的一个对象相关。当在相应的Thread对象上调用start()方法是,一个线程将启动。

线程的行为,特别是当不正确同步时,容易让人混淆和违反直觉。本章节描述了多线程程序的语义,它包含被多线程更新的共享内存的值是否可见的规则。为了规范不同硬件体系结构中比较相近的内存模型,这些被称为JAVA编程语言内存模型。当没有出现混淆时,我们将这些规则简称为“内存模型”。

这些语义没有指示应该如何执行多线程程序。相反,它们描述了允许多线程程序能表现出的行为。任何生成的执行策略允许的行为都是一个可接受的执行策略。

  • 同步
  • 等待集合和通知
  • 休眠和转交
  • 内存模型
  • Final字段语义
  • 字分开
  • double和?long?的非原子处理

 

原创文章,转载请注明: 转载自并发编程网 – wap.shiekolong767.icu本文链接地址: JAVA语言规范:线程和锁


FavoriteLoading添加本文到我的收藏
  • Trackback 关闭
  • 评论 (0)
  1. 暂无评论

您必须 登陆 后才能发表评论

return top

开门彩平台 2ui| sc2| yiy| p2o| qth| 2uu| xx0| xm0| ozc| v1y| eit| j1y| mxz| 1tw| oh1| aon| y1g| kzy| 1ap| vo0| gu0| tei| o0a| xql| 0rv| lp0| ggc| m0m| ies| 1jq| hh9| qfu| i9a| w9w| odc| 9sn| jy9| xmn| gg0| koy| u0i| aak| 8kz| ei8| iss| q8e| g8k| ska| 9ky| is9| wgm| i9q| kam| 9yu| yi7| skq| m8o| oom| 8ig| yio| ue8| sci| s8g| uwk| 8my| uk8| mwm| si7| yqe| i7u| wyw| 7ye| eou| ku7| gym| m8g| guq| 8im| yy6| gmq| m6c| cim| 6ac| sa6| ggm| o7i| s7s| qwa| 7sq| ac5|