后台网络通信框架一般采用fifo来作为事件通知的机制:创建一个fifo,然后以非阻塞读和非阻塞写的方式打开fifo,然后把fd加到epoll里面,作为通知网络事件的fd.在这里有个隐晦的问题容易被忽视.fifo在以非阻塞模式打开时,必须先打开读,然后打开写.不然会报错No such device o...
分类:
其他好文 时间:
2015-03-28 23:06:04
阅读次数:
1221
attach($file); } public function __destruct() { $this->detach(); } /** * attach, 挂接一个队列文件 */ public function a...
分类:
其他好文 时间:
2015-03-28 15:39:35
阅读次数:
176
====文件IO====Linux系统IO操作都是使用文件描述符来代表打开的文件,一个非负的的整数,它被用来指所有类型的打开的文件,包括管道,FIFO,网络套接字,终端,设备和一般文件。每个进程都有自己的一套文件描述符经常使用的三个文件描述符是:标准输入(stdin, STDIN_FILENO, 0...
分类:
系统相关 时间:
2015-03-21 22:43:28
阅读次数:
248
1.ls列出文件信息:
文件类型:
d 目录(directory)
l 符号链接(link)
s 套接字文件(socket)
b 块设备文件(block device file)
c 字符设备文件(character)
p 命名管道文件(named pipe ,FIFO)
- 普通文件
创建文件命令:touch filename
改变文件权限:chmod [who...
分类:
其他好文 时间:
2015-03-18 23:28:29
阅读次数:
457
Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列来实现线程间的同步。Queue模块中的常用方法:Que...
分类:
编程语言 时间:
2015-03-18 17:57:49
阅读次数:
220
本文转自http://my.oschina.net/u/866190/blog/188712提到缓存,不得不提就是缓存算法(淘汰算法),常见算法有LRU、LFU和FIFO等算法,每种算法各有各的优势和缺点及适应环境。1、LRU(Least Recently Used ,最近最少使用)算法根据数据的最...
分类:
编程语言 时间:
2015-03-17 10:23:41
阅读次数:
170
常用IPC有:1:管道2:命名管道(FIFO)3:共享存储4:套接字5:信号量6:消息队列7:信号管道 只允许亲缘进程间的通讯。命名管道(FIFO) 除了亲缘进程可以通讯外,非亲缘进程也可以通讯。共享内存 多个进程可以访问同一块内存空间,是最快的IPC方式。在进程间传递数据时无须任何内存的拷贝 。可...
分类:
系统相关 时间:
2015-03-15 18:17:54
阅读次数:
185
进程间通讯的方式:
管道中还有命名管道和非命名管道之分,非命名管道只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式。FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO,因此也成为命名管。消息队列:是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息...
分类:
系统相关 时间:
2015-03-15 09:36:43
阅读次数:
270
进程间通信方式
传递数据的方式
1.pipe
必须是有亲缘关系的进程之间使用,平时用"ls | grep abc"等命令时用得就是这个,这个"|"我猜测是用了两种系统调用实现,一个是pipe(popen),一个是dup2,没有看过bash或sh的源码,只是猜测。
2.fifo
会在文件...
分类:
编程语言 时间:
2015-03-15 09:31:35
阅读次数:
265
上一篇文章提到AQS是基于CLH lock queue,那么什么是CLH lock queue,说复杂很复杂说简单也简单, 所谓大道至简:CLH lock queue其实就是一个FIFO的队列,队列中的每个结点(线程)只要等待其前继释放锁就可以了。AbstractQueuedSynchronizer...
分类:
编程语言 时间:
2015-03-11 22:51:46
阅读次数:
191