码迷,mamicode.com
首页 >  
搜索关键字:java并发编程    ( 1354个结果
并发编程—— 任务取消 之 停止基于线程的服务
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:编程语言   时间:2014-10-24 18:43:37    阅读次数:217
Java 并发编程(四)并发容器
ava 5.0 提供了多种并发容器来改进同步容器的性能。 同步容器是将所有对容器的访问都串行化,以实现他们的线程安全性。代价是严重降低并发行,当多个线程竞争容器的锁时,吞吐量将严重降低。 并发容器是针对多个线程并发访问设计的。 Java 5.0 增加了 ConcurrentHashMap ,用来替代同步且基于散列的 Map ,增加了 CopyOnWriteArrayList ,用于在遍历操作为主要操作的情况下替代同步的 List 。 Java 5.0 还增加了两中心的容器类型...
分类:编程语言   时间:2014-10-23 16:27:39    阅读次数:209
Java 并发编程(四)同步容器类
Java 中的同步容器类包括 Vector 和 Hashtable ,二者是早起 JDK 的一部分,此外还包括在 JDK1.2 中添加的一些功能相似的类,这些同步的封装类是由 Collections.synchronizedXxx 等工厂方法创建的的。这些类实现线程安全的方法都是一样的:将他们封装起来,并对每个公有方法都进行同步,使得每次都只有一个线程能访问容器的状态。...
分类:编程语言   时间:2014-10-23 00:02:42    阅读次数:171
Java并发编程 - 如何进行安全发布
首先让我简单解释一下所谓"发布"。发布(publish),使对象可以在当前作用域之外的代码中可见,如果该对象被发布,则该对象的非私有域中引用的所有实例同样也会被发布。不仅仅是作为一个field,当一个对象作为一个方法的参数或者在公有方法中作为返回引用,这都属于发布。而相对地,对于错误的发布,我们将其...
分类:编程语言   时间:2014-10-21 21:23:16    阅读次数:347
Java并发编程 - 线程封闭
保证并发安全性的方式有三:不共享、不可变、同步前两种方式相对第三种要简单一些。这一篇不说语言特性和API提供的相关同步机制,主要记录一下关于共享的一些思考。共享(shared),可以简单地认为多个线程可以同时访问某个对象。如果仅仅在单线程内进行访问则不存在同步的问题。保证数据的单线程访问称为线程封闭...
分类:编程语言   时间:2014-10-21 21:23:10    阅读次数:278
Java并发编程 - 关于扩展线程安全类的一些思考
"重用"大法好,我们早已习惯重用已设计好的类而不是自己造轮子玩。重用可以节省我们进行开发和测试(测试比我们自己测严谨地多)的时间和其他各种成本。但是,对一个线程安全类进行扩展的时候就需要思考一些问题。比如我们熟知的线程安全类Vector,该类中对所有的公有方法提供了synchronized修饰以保证...
分类:编程语言   时间:2014-10-21 21:18:02    阅读次数:296
Java并发编程 - 关于不变性的一些思考
这篇记录一下保证并发安全性的策略之——不变性。(注意:是Immutable,不是Invariant!)将一连串行为组织为一个原子操作以保证不变性条件,或者使用同步机制保证可见性,以防止读到失效数据或者对象变为不一致状态,这些问题都是因为共享了可变的数据。如果我们能保证数据不可变,则这些复杂的问题就自...
分类:编程语言   时间:2014-10-21 21:05:45    阅读次数:292
(转)java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:写道给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境...
分类:编程语言   时间:2014-10-20 14:54:36    阅读次数:301
Java 并发编程(三)为现有的线程安全类中添加新的原子操作
Java 类库中包含许多有用的”基础模块“类。通常,我们应该优先选择重用这些现有的类而不是创建新的类。:重用能降低开发工作量、开发风险(因为现有类都已经通过测试)以及维护成本。有时候,某个线程安全类能支持我们需要的所有操作,但更多的时候,现有的类只能支持大部分的操作,此时就需要在不破坏线程安全的情况下添加一个新的操作。...
分类:编程语言   时间:2014-10-19 10:16:35    阅读次数:199
Java 并发编程(三)设计线程安全的类-实例封闭
到目前为止,我们已经介绍了关于线程安全与同步的一些基础知识。然而,我们并不希望对每一次内存访问都进行分析以确保是线程安全的,而是希望将一些现有的线程安全组件组合为更大规模的组合为更大规模的组件或程序。之后,我们会讲一些设计线程安全类的一些基本概念,介绍一些组合模式。...
分类:编程语言   时间:2014-10-18 22:25:01    阅读次数:344
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!