目的:本文通过分析JDK源码来对比ArrayBlockingQueue 和LinkedBlockingQueue,以便日后灵活使用。
1. 在Java的Concurrent包中,添加了阻塞队列BlockingQueue,用于多线程编程。BlockingQueue的核心方法有:
* boolean add(E e) ,把 e 添加到BlockingQueue里。如果BlockingQueue可以容纳,则返回true,否则抛出异常。
* boolean offer(E e),表示如果可能的话,将 e 加...
分类:
数据库 时间:
2014-05-22 12:19:23
阅读次数:
442
为了无阻塞地实现并发通信及处理,设计了一种流水线线程池模式。流水线结构保证了各个客户工作在大粒度上并行化,线程池技术保证了处理器资源的最大利用,可以显著提高系统的吞吐能力。另一个附加好处,是可以让VIP获得高级优先级。...
分类:
其他好文 时间:
2014-05-22 10:14:58
阅读次数:
356
引言:高级I/O包括非阻塞I/O、记录锁、系统V流机制、I/O多路转接(select和poll函数)、readv和writev函数以及存储映射I/O。
(一)非阻塞I/O
可能会使进程永远阻塞的一类系统调用有:
1、如果某些文件类型的数据并不存在,则读操作可能会使调用者永远阻塞。
2、如果数据不能立即被上述同样类型的文件接受,则写操作也会使调用者永远阻塞。
3、在某种条件发生之前,打开某...
分类:
系统相关 时间:
2014-05-22 08:05:30
阅读次数:
432
引言
在之前的《创建无阻塞的异步调用》中,已经介绍过异步调用的编写步骤和实施原理。异步调用是CLR为开发者提供的一种重要的编程手段,它也是构建高性能、可伸缩应用程序的关键。在多核CPU越来越普及的今天,异步编程允许使用非常少的线程执行很多操作。我们通常使用异步完成许多计算型、IO型的复杂、耗时操作....
分类:
编程语言 时间:
2014-05-22 02:17:56
阅读次数:
384
了解IAsyncResult
现在我们已经了解,EndInvoke可以给我们提供传出参数与更新后的ref参数;也可以向我们导出异步函数中的异常信息。例如,我们使用BeginInvoke调用了异步函数Sleep,它开始执行。之后调用EndInvoke,可以获取Sleep何时执行完成。但如果我们在Sle...
分类:
编程语言 时间:
2014-05-22 01:49:25
阅读次数:
381
一些很好的blog(待更新):1、NIO入门2、NIO.2 入门,第 1 部分: 异步通道
APII- 就是从硬盘到内存O-
就是从内存到硬盘一、阻塞IO第一种方式:我从硬盘读取数据,然后程序一直等,数据读完后,继续操作。这种方式是最简单的,叫阻塞IO。第二种方式:我从硬盘读取数据,然后程序继续向下...
分类:
编程语言 时间:
2014-05-22 01:44:00
阅读次数:
293
前言本文大部分内容来自于mikeperetz的Asynchronous Method
Invocation及本人的一些个人体会所得,希望对你有所帮助。原英文文献可以在codeproject中搜索到。介绍这篇文章将介绍异步调用的实现机制及如何调用异步方法。大多数.NET开发者在经过delegate、T...
分类:
编程语言 时间:
2014-05-22 01:38:36
阅读次数:
374
Linux网络编程 五种I/O
模式及select、epoll方法的理解web优化必须了解的原理之I/o的五种模型和web的三种工作模式五种I/O
模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O
分类:
系统相关 时间:
2014-05-21 20:56:15
阅读次数:
330
Subsections
线程安全(Thread safety)
锁(lock)
共享对象
对象组合
基础构建模块
任务执行
取消和关闭
线程池的使用
性能与可伸缩性
并发程序的测试
显示锁
原子变量和非阻塞同步机制
一、线程安全(Thread safety)
无论何时,只要多于一个线程访问给定的状态变量。而且其中某个线程会写入该变量,此时必须使用同...
分类:
编程语言 时间:
2014-05-21 17:11:45
阅读次数:
500
当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_semaphore.
信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞(如果有必要的话),直至计数器大...
分类:
其他好文 时间:
2014-05-21 09:51:27
阅读次数:
258