
并发
尹自强
这个作者很懒,什么都没留下…
展开
-
探索并发编程(二)------ 写线程安全的Java代码
在写Java程序的时候,何时需要进行并发控制,关键在于判断这段程序或这个类是否是线程安全的。当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步,这个类的行为仍然是正确的,那么称这个类是线程安全的。我们设计类就是要在有潜在并发问题存在情况下,设计线程安全的类。线程安全的类可以通过以下手段来满足:不跨线程共享变量使状态变量为不可变的在任何访问状转载 2013-02-21 22:40:57 · 262 阅读 · 0 评论 -
探索并发编程(一)------ 操作系统篇
在多线程、多处理器甚至是分布式环境的编程时代,并发是一个不可回避的问题,很多程序员一碰到并发二字头皮就发麻,也包括我。既然并发问题摆在面前一个到无法回避的坎,倒不如拥抱它,把它搞清楚,决心花一定的时间从操作系统底层原理到Java的基础编程再到分布式环境等几个方面深入探索并发问题。先就从原理开始吧。并发产生的原因虽然从直观效果上,处理器是并行处理多项任务,但本质上一个处理器在某个时间点只能处转载 2013-02-21 22:39:50 · 299 阅读 · 0 评论 -
探索并发编程(三)------ Java存储模型和共享对象
很多程序员对一个共享变量初始化要注意可见性和安全发布(安全地构建一个对象,并其他线程能正确访问)等问题不是很理解,认为Java是一个屏蔽内存细节的平台,连对象回收都不需要关心,因此谈到可见性和安全发布大多不知所云。其实关键在于对Java存储模型,可见性和安全发布的问题是起源于Java的存储结构。Java存储模型原理有很多书和文章都讲解过Java存储模型,其中一个图很清晰地说明了其存储结构:转载 2013-02-21 22:42:35 · 252 阅读 · 0 评论 -
探索并发编程(四)------ Java并发工具
基于线程安全的一些原则来编程当然可以避免并发问题,但不是所有人都能写出高质量的线程安全的代码,并且如果代码里到处都是线程安全的控制也极大地影响了代码可读性和可维护性。因此,Java平台为了解决这个问题,提供了很多线程安全的类和并发工具,通过这些类和工具就能更简便地写线程安全的代码。归纳一下有以下几种:同步容器类并发容器类生产者和消费者模式阻塞和可中断方法Synchronizer这些类和转载 2013-02-21 22:44:44 · 240 阅读 · 0 评论