感性认识: 传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。 小...
分类:
其他好文 时间:
2014-05-10 08:50:29
阅读次数:
365
【转自:GCD介绍(三): Dispatch Sources】何为Dispatch Sources
简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。
说的貌似有点不清不楚。我们到底讨论.....
分类:
其他好文 时间:
2014-05-08 13:52:43
阅读次数:
367
题目如下:
The Dole Queue
In a serious attempt to downsize (reduce) the dole queue, The NewNational Green Labour Rhinoceros Party has decided on the followingstrategy. Every day ...
分类:
其他好文 时间:
2014-05-07 15:46:40
阅读次数:
235
ExecutorService:
它也是一个接口,它扩展自Executor接口,Executor接口更像一个抽象的命令模式,仅有一个方法:execute(runnable);Executor接口简单,但是很重要,重要在这种设计的模式上。。Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线...
分类:
移动开发 时间:
2014-05-07 15:43:59
阅读次数:
438
1、采用queue,而不是采用list遍历2、添加两个锁,读锁和写锁
分类:
编程语言 时间:
2014-05-07 14:07:12
阅读次数:
223
《Windows Azure队列与服务总线队列的比较》作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs在微软Azure云平台上,有两种队列实现,一种是Windows Azure Queue,另一种是Service Bus Queue。一、介绍微软的Windows Azure支持两种类型的队列机制:一是Windows Azure队列,二是服务总线队列。Wi...
基于RabbitMQ的工作队列实现,包括消息确认机制、消息持久化机制、消息的公平调度等。...
分类:
其他好文 时间:
2014-05-07 07:10:23
阅读次数:
421
封装了一个基于C++11的线程池对象。
异步执行的任务,从线程池中分配一个空闲的线程来执行该任务.
如果没有空闲的线程可以执行,则进入队列排队
task_pool_init(10);
for( int i = 0 ; i < 200 ; i ++ )
{
run_job([i]{
std::this_thread::sleep_for(std::chrono::seconds(1));
});
}
...........................
...
分类:
编程语言 时间:
2014-05-06 23:16:37
阅读次数:
378
G++ 2.91.57,cygnus\cygwin-b20\include\g++\stl_queue.h 完整列表
/*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Permission to use, copy, modify, distribute and sell this software
* and its document...
分类:
其他好文 时间:
2014-05-06 22:22:55
阅读次数:
402