- 博客(10)
- 收藏
- 关注
翻译 8.5总结
这一章节介绍了并发集合(concurrent collections)、原子变量(atomic variables)、分叉/结合的框架(Fork/Join Framework)和完成服务(completion services)。 一个并发集合是一个并发的应用和高调度的集合面向这些储蓄在java.util.concurrent的包。它克服了ConcurrentModificationE
2018-01-29 22:44:10 214
翻译 8.4完成服务(Completion Services)
completion services是一个java.util.concurrent.CompletionService接口的应用,这个是从同步任务和从任务完成的返回结果中解耦。V是任务返回的类型。 一个生产者提交一个任务执行(通过一个工作线程),通过请求一个submit()方法:一个方法接受可调用的参数和一个方法接受运行中的参数随后结果返回任务的完成。为了任务的完成,你可以从池中请求
2018-01-29 22:42:49 471
翻译 8.3分叉/结合的框架(Fork/Join Framework)
我信总是需要让我们的代码执行更快。过去,我们需要依赖于微处理器的速度提升和通过提供多处理器。然而,大概在2003年,微处理器的速度停止提升,因为自然因素的限制。为了弥补这个不足,我们需要人工的处理器去添加多处理核,这样就可以在高度并发性中提升速度。 Java通过低级的线程提供并发的应用,和高级的并发工具应用如线程池。问题是并发不能最大的使用变量处理器或核的资源。例如,假定你创建一个排
2018-01-29 22:41:26 295
翻译 8.2.1理解原子
java的低级同步机制,它强调了线程间互相执行(当前线程持有锁,并且有一堆的变量在这个线程中执行)和可测量性(让守护的变量成为其它线程可用,并且随后申请锁)。在以下的方式中影响着硬件的性能和可扩展性: 竞争同步(多个线程不断地竞争一个锁)是昂贵的,和吞吐量影响着结果。这个昂贵的代价主要是因为频繁的上下文件有切换(选择一个中心的进程直到一个线程到另一个线程)。每一个上下文的选择操作会计
2018-01-29 22:37:46 232
翻译 8.2原子变量
在原有的锁连接着一个监测器,在以往使用中表现不佳。尽管在性能上有得到提升,但是在互联网的服务器和其它频繁请求的应用中还是遇到瓶颈。 大量的探索中,找到了一个创建无锁的算法,这个算法可以在同步的应用中提高应用性能。这些算法提高了可扩展性,因为在多线程的相同数据处理中,不需要在线程中加锁。因此,这样就不会出现死锁或线程死掉的问题。 Java5通过使用java.util.conc
2018-01-29 22:35:38 260
翻译 8.1.2 学习更多关于ConcurrentHashMap
ConcurrentHashMap类的行为就像是HashMap,但是它设计工作在多线程中不需要明确同步。例如,你需要去检查map中是否包含着特殊的值,如下:if (!map.containsKey("some string-based key"))map.put("some string-based key", "some string-based value"); 尽管这个
2018-01-29 22:32:54 203
翻译 8.1.1使用BlockingQueue和ArrayBlockingQueue
使用BlockingQueue来实现产生都与消费者的例子,比起前面第三章的用法会更加简单,因为它不需要去解决同步问题。下面的例子使用BlockingQueue和ArrayBlockingQueue实现生产者的消费者的例子。package com.owen.thread.chapter8;import java.util.concurrent.ArrayBlockingQueue;impo
2018-01-29 22:30:58 304
翻译 8.1并发集合(Concurrent Collections)
Java并发框架在包java.util.package中提供了接口和类。接口中包含List、Set和Map;类包含了ArrayList、TreeSet和HashMap。 ArrayList、TreeSet、HashMap和其它的类都继承了这些类接口,但是它们是不安全的线程。然而,你可以让它们在使用是安全的线程,通过使用java.util.Collection类的同步擦除方法。例如
2018-01-29 22:29:30 460
翻译 8. 额外的并发实用程序(Additional Concurrency Utilities)
在前面的几个章节中,我已经介绍了并发工具(concurrency utilities)、执行(executors)、同步者(snychronizer)和锁的框架(Locking Framework)。在这一章节,我将介绍并发集合(concurrent collections)、原子变量(atomic variable)、分叉/合并框架(Fork/Join Framework)和完成服务(compl
2018-01-29 22:25:53 278
翻译 7.6 总结
java.util.concurrent包提供接口框架,和给环境(Condition)的方法等待、锁的类,这些都是基于同步锁和对象等待、唤醒的机制。并发工具包括锁的框架,促进我们在同步和等待、唤醒中提供锁等待轮询。 锁的框架包含了我们经常使用的Lock、Reentrantlock、Condition、ReadWriteLock和ReentrantReadWriteLock,这些在这个章
2018-01-29 22:24:51 191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人