本文由ImportNew-rookie_sam翻译自Dzone。欢迎加入翻译小组。转载请见文末要求。死锁是指,两个或多个动作一直在等待其他动作完成而使得所有动作都始终处在阻塞的状态。想要在开发阶段检测到死锁是非常困难的,而想要解除死锁往往需要重新启动程序。更糟的是,死锁通常发生在负载最重的生产过程中...
分类:
编程语言 时间:
2015-03-20 21:45:18
阅读次数:
189
实现思路:线程执行后进行阻塞,判断当前标记是否达到设置的并发数,如果未达到上限,执行队列中将继续增加线程;如已达到其余线程排队等候。实例代码:注:其中用到Mutex与Interlocked两个与线程相关的类,需要加上 using System.Threading; 引用Threading命名空间。p...
分类:
编程语言 时间:
2015-03-20 18:04:12
阅读次数:
135
/*********************************** //删除 死锁 存储过程***************************************/if exists (select * from dbo.sysobjectswhere id = object_id(N...
分类:
数据库 时间:
2015-03-20 17:54:35
阅读次数:
152
##什么是阻塞队列## 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于...
分类:
编程语言 时间:
2015-03-20 16:39:24
阅读次数:
154
1.两者所用的驱动模式不同。
nginx使用的是epoll的非阻塞模式事件驱动。
apache使用的是select的阻塞模式事件驱动。
2.fastcgi和cgi的区别
当用户请求web服务的时候,web会根据不同的需求将请求发送给不同个cgi来处理。
cgi模式,就是每次有请求的时候都fork一个新的进程来处理这个请求,处理完成后再关闭这个进程。
fastcg...
分类:
Web程序 时间:
2015-03-20 16:28:57
阅读次数:
154
Linux select 机制深入分析
作为IO复用的实现方式,select是提高了抽象和batch处理的级别,不是传统方式那样阻塞在真正IO读写的系统调用上,而是阻塞在select系统调用上,等待我们关注的描述符就绪。当然现在更好的方式是epoll,比如Java中的NIO底层就是用的epoll。这篇文章只是为了搞懂select机制的原理,不看源码就不能说懂这些IO复用手...
分类:
系统相关 时间:
2015-03-20 14:29:27
阅读次数:
220
Java NIO的FileChannel是连接文件的通道。通过文件通道,你可以从文件读数据,也可以将数据写到文件中。FileChannel类和标准Java IO API都是可用来读文件的。FileChannel不能被设置成非阻塞模式。它总是运行在阻塞模式下。打开文件通道在你使用文件通道之前必须打开它。你不能直接打开文件通道。你需要通过InputStream,OutputStream或者RandomA...
分类:
编程语言 时间:
2015-03-20 12:59:18
阅读次数:
159
1、安装NodeJs 目的:Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用。 Node.js 借助事件驱动, 非阻塞I/O模型变得轻量和 高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用。 版本:v0.12...
分类:
其他好文 时间:
2015-03-20 12:29:10
阅读次数:
80
什么是同步和异步 I/O ?同步I/O,操作的发起者必须等到接收者处理完I/O异步I/O,操作的发起者无须等到接收者处理完I/O阻塞I/O,操作的接收者必须等到发送者发送I/O非阻塞I/O,操作的接收者无须等到发送者发送I/O注:在下文中,会成对使用 同步/阻塞(Blocking),异步/非阻塞(N...
分类:
其他好文 时间:
2015-03-19 23:50:25
阅读次数:
121
1、I/O模型 一个输入操作通常包括两个不同阶段:等待数据准备好;从内核到进程拷贝数据。阻塞I/O模型非阻塞I/O模型I/O复用模型:内核发现进程指定的一个或多个I/O条件就绪,它就通知进程,由select和poll两个函数支持信号驱动I/O模型:内核在描述字就绪时发送SIGIO信号通知进程异步I....
分类:
其他好文 时间:
2015-03-19 23:22:12
阅读次数:
127