有关Java 5.0+ 并发包的探讨-2 section博客分类:Core JavaJavathreadAccessF#前面文章用直接使用Thread类的start方法来新启动一个线程,看起来貌似没有什么问题,问题就在于线程使用场景的需求上,如果希望每个一段时间自动运行一次这个线程,如果想使用线程池...
分类:
编程语言 时间:
2014-06-28 22:26:21
阅读次数:
413
接上一篇 java并发包小结(一):http://blog.csdn.net/aalansehaiyang52/article/details/8877579Future 接口Future 接口允许表示已经完成的任务、正在执行过程中的任务或者尚未开始执行的任务。通过 Future 接口,可以尝试取....
分类:
编程语言 时间:
2014-06-28 22:18:47
阅读次数:
337
java.util.concurrent 包含许多线程安全、高性能的并发构建块。换句话讲,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提高并发类的线程安全、可伸缩性、性能、可...
分类:
编程语言 时间:
2014-06-28 22:07:01
阅读次数:
536
Java内存模型是保障多线程安全的根基,这里仅仅是认识型的理解总结并未深入研究。
一、什么是内存模型,为什么需要它
Java内存模型(Java Memory Model)并发相关的安全发布,同步策略的规范、一致性等都来自于JMM。
1 平台的内存模型
在架构定义的内存模型中将告诉应用程序可以从内存系统中获得怎样的保证,此外还定义了一些特殊的指令(称为内存栅栏或栅栏),当...
分类:
编程语言 时间:
2014-06-20 11:36:41
阅读次数:
289
昨天刚看完BlockingQueue觉得好高级啊,今天扫到1.7就发现了升级版。。。。如果对内容觉得不够充分,可以去看http://www.cs.rochester.edu/u/scott/papers/2009_Scherer_CACM_SSQ.pdf就是作者的论文啦,纯英文。。。比较难啃,但是我...
分类:
编程语言 时间:
2014-06-18 22:07:55
阅读次数:
192
在之前的博文里有说过executor框架,其实Fork/Join就是继承executor的升级版啦executor用于创建一个线程池,但是需要手动的添加任务,如果需要将大型任务分治,显然比较麻烦而Fork/Join则是解决这个问题的计算框架用户定义部分:如何分治 (compute(1 , 10))定...
分类:
编程语言 时间:
2014-06-18 18:30:52
阅读次数:
224
http://www.cnblogs.com/rockman12352/p/3788688.html上一篇对于整体框架讲了很多东西,但是具体在使用时有一些细节并没有说出来首先是执行任务execute(); 执行任务,返回空,相当于 new Thread(task).start();submit();...
分类:
编程语言 时间:
2014-06-15 13:05:16
阅读次数:
267
ConcurrentHashMap
ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。
ConcurrentHashM...
分类:
编程语言 时间:
2014-06-08 15:38:47
阅读次数:
326
一、锁的劣势
锁定后如果未释放,再次请求锁时会造成阻塞,多线程调度通常遇到阻塞会进行上下文切换,造成更多的开销。
在挂起与恢复线程等过程中存在着很大的开销,并且通常存在着较长时间的中断。
锁可能导致优先级反转,即使较高优先级的线程可以抢先执行,但仍然需要等待锁被释放,从而导致它的优先级会降至低优先级线程的级别。
二、硬件对并发的支持
处理器填写了一些特殊指令,例如:比较并交换...
分类:
编程语言 时间:
2014-06-07 14:25:12
阅读次数:
310
第一章 多线程
多线程和多进程之间的区别:
本质区别在于每个进程有他自己的变量的完备集,线程则共享相同的数据,这个听起来似乎有些危险,事实上也的确如此,你将会在本章后面的内容中看到这个问题,尽管如此,对于程序来说,共享的变量使线程之间的通信
比进程间的通信更加有效简单,而且,对于某些操作系统而言,线程比进程更加轻量级。创建和销毁单个线程比发起进程的开销要小很多。
线程优先级
在J...
分类:
编程语言 时间:
2014-06-07 14:03:00
阅读次数:
318