原文http://www.cnblogs.com/alex3714/articles/5876749.html 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的networ ...
分类:
编程语言 时间:
2017-07-02 11:39:12
阅读次数:
204
RabbitMQ消息队列:默认为消息轮循模式,按client端启动是顺序接收 server端 1 import pika 2 connection = pika.BlockingConnection(pika.ConnectionParameters( 3 'localhost')) 4 chann ...
分类:
编程语言 时间:
2017-07-01 20:08:30
阅读次数:
232
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. ...
分类:
Web程序 时间:
2017-06-29 01:01:03
阅读次数:
266
一 概述 1.线程池产生背景 在多线程环境下,频繁地创建与销毁线程会耗费大量的系统资源,降低运行性能,因此产生了一种设计思想:将创建好的线程放到一个容器中,需要时从容器取得线程,使用完毕将线程归还容器,这样就可以重复利用线程,避免了重复创建与销毁造成的资源消耗,提高了性能。 2.什么是线程池? 元素 ...
分类:
编程语言 时间:
2017-06-27 18:49:21
阅读次数:
218
我们知道很多类库中的阻塞方法在抛出InterruptedException后会清除线程的中断状态(例如 sleep、 阻塞队列的take),但是今天却发现了一个特别奇怪的现象,先给出代码: 如果按照我的理解,调用shutdownNow后会给线程池中的工作者线程发出中断请求,并在第一个睡眠的地方抛出 ...
分类:
其他好文 时间:
2017-06-26 12:44:37
阅读次数:
270
参考文献: http://www.jianshu.com/p/87bff5cc8d8c http://www.jianshu.com/p/edd7cb4eafa0 在Java应用中如果需要频繁的去创建大量线程去完成任务,肯定会对性能有很大的影响。因为系统在创建和销毁线程上需要消耗太多的资源,开销很大 ...
分类:
编程语言 时间:
2017-06-23 20:54:07
阅读次数:
161
Transactional isolation is usually implemented by locking whatever is accessed in a transaction. There are two different approaches to transactional l ...
分类:
其他好文 时间:
2017-06-20 14:51:15
阅读次数:
167
LinkedBlockingQueue是一个单向链表实现的阻塞队列,先进先出的顺序。支持多线程并发操作。 对它的属性:add、put、offer以及poll、remove、take进行简单介绍 首先构建一个LinkedBlockingQueue 构造的时候若没有指定大小,则默认大小为Integer. ...
分类:
数据库 时间:
2017-06-19 17:10:29
阅读次数:
182
为了给高并发情况下的MySQL进行更好的优化,有必要了解一下MySQL查询更新时的锁表机制。 一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellockin ...
分类:
数据库 时间:
2017-06-19 14:29:48
阅读次数:
267
具体流程如下: 1)当池子大小小于corePoolSize就新建线程,并处理请求 2)当池子大小等于corePoolSize,把请求放入workQueue中,池子里的空闲线程就去从workQueue中取任务并处理 3)当workQueue放不下新入的任务时,新建线程入池,并处理请求,如果池子大小撑到 ...
分类:
其他好文 时间:
2017-06-18 18:12:37
阅读次数:
105