摘要: 转载: Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者 阅读全文
posted @ 2016-03-30 23:50 Andrew.Zhou 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 转载: Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前 阅读全文
posted @ 2016-03-30 23:06 Andrew.Zhou 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 转载: Java并发编程:线程池的使用 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中 阅读全文
posted @ 2016-03-30 22:44 Andrew.Zhou 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 转载: Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 阅读全文
posted @ 2016-03-30 22:07 Andrew.Zhou 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 转载: Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必 阅读全文
posted @ 2016-03-30 19:45 Andrew.Zhou 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 转载: Java常用排序算法/程序员必须掌握的8大排序算法 分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 阅读全文
posted @ 2016-03-30 03:22 Andrew.Zhou 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 转载: KMP算法 阅读全文
posted @ 2016-03-30 03:01 Andrew.Zhou 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 转载: Java NIO:浅析I/O模型 ##一.什么是同步?什么是异步? 同步和异步的概念出来已经很久了,网上有关同步和异步的说法也有很多。以下是我个人的理解: 同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法 阅读全文
posted @ 2016-03-30 02:13 Andrew.Zhou 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 转载: Java NIO:NIO概述 ##一.NIO中的几个基础概念 在NIO中有几个比较关键的概念:Channel(通道),Buffer(缓冲区),Selector(选择器)。 首先从Channel说起吧,通道,顾名思义,就是通向什么的道路,为某个提供了渠道。在传统IO中,我们要读取一个文件中的内 阅读全文
posted @ 2016-03-30 00:01 Andrew.Zhou 阅读(365) 评论(0) 推荐(0) 编辑