
笔记_并发编程实践
文章平均质量分 80
鹅
这个作者很懒,什么都没留下…
展开
-
Java线程(六):Callable和Future
上一篇:Java线程(五) 接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿转载 2013-08-21 19:43:38 · 590 阅读 · 0 评论 -
笔记_并发编程实践_十五
原子变量与非阻塞同步机制1.锁的劣势:原创 2014-01-11 22:46:57 · 520 阅读 · 0 评论 -
笔记_并发编程实践_十四
构建自定义的同步工具1.除了系统提供的类库可以提供阻塞,通过使用语言和类库提供的底层机制:条件队列,显示的condirion对象,和AbstractQueuedSynchronizer构建属于自己的synchronizer原创 2014-01-09 20:13:08 · 498 阅读 · 0 评论 -
笔记_并发编程实践_十三
显式锁原创 2014-01-08 19:30:39 · 596 阅读 · 0 评论 -
笔记_并发编程实践_十二
测试并发程序原创 2014-01-06 19:57:41 · 558 阅读 · 0 评论 -
多线程并发实践_笔记_第十章
避免活跃度危险10.2避免和诊断死锁1.如果程序一次之多获得一个锁,就可以避免顺序死锁。2.确保程序获取多个锁的时候,确保他们获得锁的顺序一致。3.使用定时锁(基于显式锁的tryloack特性,即ReentrantLock。这是一种可以提供无条件,可轮询,定时以及可中断的锁获取操作),使得在一定时间获取所失败后返回失败。(此时可暂停一定时间再去获得锁,使得程序在发生死锁后可以恢复)原创 2013-10-08 20:33:58 · 824 阅读 · 0 评论 -
笔记_并发编程实践_十一
性能和可伸缩性 1.可伸缩性:可伸缩性是指:当增加计算机资源的时候(增加额外的cpu数量,内存,存储器,I/O带宽),吞吐量和生产性能得到相应的提高。(吞吐量是指在单位时间内中央处理器(CPU)从存储设备读取->处理->存储信息的量。)使用工具来衡量是优化的效果,如免费的perfbar能够告诉你cpu的忙碌状况,可用 于衡量是否能使cpu得到充分的利用 2.amda原创 2013-11-14 18:04:23 · 831 阅读 · 0 评论 -
多线程并发实践_笔记_第九章
GUI应用程序1.GUI是单线程化的《1》创建了一个事件派发线程专门处理gui事件《2》容易产生界面假死的现象《3》SwingUtilties.isEventDispatcherThread判断是否在事件分派线程中被调用《4》SwingUtilties.invokeAndWait,使得runnable任务在在事件分派线程中执行,并且阻塞当前线程(只能在非GUI线程中调用)《转载 2013-09-23 20:16:21 · 525 阅读 · 0 评论 -
多线程并发实践_笔记_第八章
应用线程池1.任务和执行策略之间的隐性耦合《1》依赖性任务:当任务间相互独立时,线程池可任意改变长度和配置,当任务依赖于其他任务时则给执行策略带来约束《2》采用线程限制的任务:如使用单线程化的executor能使得任务单线程执行,从而不是线程安全的资源也能保证同步,但是这样也就约束了执行任务必须单线程化(因为可能存在非线程的资源)《3》对响应时间敏感的任务:当多个长时间原创 2013-09-05 21:10:33 · 793 阅读 · 0 评论 -
java获得CPU使用率,系统内存,虚拟机内存等情况
JXM:Monitoring and Management Interface for the Java™ Platform 通过jmx可以监控vm内存使用,系统内存使用等 以下是网上某博客代码,特点是通过window和linux命令获得CPU使用率。 Java代码 利用java程序实现获取计算机cpu利用率和内存使用信息。 创建转载 2013-09-05 21:08:22 · 704 阅读 · 0 评论 -
多线程并发实践_笔记_第七章
取消或关闭1.概念:《1》java不提供强迫线程停止手头工作的机制,只提供终端——协作机制《2》当外部代码能再活动自然完成之前把,把它更改为完成状态,那么这个活动是可取消的。2.中断:中断通常是实现取消的最佳选择《1》每个线程都含有一个中断状态,在中断的时候这个状态被设置为true《2》interrupted方法的方法名容易使人迷原创 2013-08-28 20:33:07 · 681 阅读 · 0 评论 -
shutdown hook(关闭钩子)的用处-程序关闭之前要做的事情
JDK1.3介绍了java.lang.Runtime class的addShutdownHook()方法。如果你需要在你的程序关闭前采取什么措施,那么关闭钩子(shutdown hook)是很有用的。要加关闭钩子(shutdown hook),需要先创建一个java.lang.Thread 类的实例,把它作为addShutdownHook()方法的参数。因为关闭钩子(shutdown ho转载 2013-09-03 20:33:55 · 1344 阅读 · 0 评论 -
Java线程中断的本质深入理解
一、Java中断的现象 首先,看看Thread类里的几个方法: public static boolean interrupted测试当前线程是否已经中断。线程的中断状态 由该方法清除。换句话说,如果连续两次调用该方法,则第二次调用将返回 false(在第一次调用已清除了其中断状态之后,且第二次调用检验完中断状态前,当前线程再次中断的情况除外)。public b转载 2013-08-18 20:06:58 · 742 阅读 · 1 评论 -
Java 7 Fork/Join 框架
在 Java7引入的诸多新特性中,Fork/Join 框架无疑是重要的一项。JSR 166旨在标准化一个实质上可扩展的框架,以将并行计算的通用工具类组织成一个类似java.util中Collection一样的包。其目标是使之对开 发人员易用且易维护,同时该框架也旨在并行计算地高质量实现。目前已经有多个新的类和接口被添加到该框架中了。该新特性主要是解决Java社区中对于如synchroniz转载 2013-08-16 18:03:57 · 698 阅读 · 0 评论 -
多线程并发实践_笔记_第六章
任务执行6.1在线程中执行任务【1】概念:《1》任务:任务就是抽象、离散的工作单元《2》任务的边界:应该指明明确的任务边界,尽量使得任务时独立的活动,不依赖其他线程的状态、结果或边界效应,例如web服务器不同的客户请求不会相互影响【2】顺序的执行任务:单线程执行,响应性和吞吐量都较差,除了单一的用户和任务执行时间很短的特殊情况下都不适用原创 2013-08-25 20:22:45 · 607 阅读 · 0 评论 -
Callable,Runnable比较及用法
编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,Callable.Runnable和Callable的区别是,(1)Callable规定的方法是call(),Runnable规定的方法是run().(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得(3)call方法可以抛出异常,ru转载 2013-08-26 19:56:31 · 487 阅读 · 0 评论 -
并发编程实践笔记_第五章
5.1: 什么是同步容器?线程安全的容器类,arraylist,hashmap,hashtable,vector等等到时容器,只有vector和hashtable才是线程安全的,其他诸如list等容器亦存在其同步包装类(通过Collection.synchronizaexx方法获得)5.11:同步容器中的问题:同步容器类只保证其单个操作的线程安全,若然对着一些操作复合应用的话就需要进行同步。(原创 2013-08-14 21:05:24 · 602 阅读 · 0 评论 -
笔记_并发编程实践_十六
java存储模型1.什么是存储模型:(1)存储模型要回答这样一个问题:当一个线程为某变量赋值,什么时候其他线程可以看到这个值?(2)平台的存储模型每一个处理器都有自己的缓存,并周期性地保持与主内存一直,助力器架构提供了不同级别的缓存一致性,几乎在任何时间内都允许处理器在相同的存储位置上看到不同的值。一种架构的存储模型告诉了应用程序可以从它的系统中获得何种担保,同时详细定义了原创 2014-01-13 11:09:17 · 593 阅读 · 0 评论