多进程命名管通通信无血缘关系进程PH

php中文网 课程

每日17点准时技术干货分享

进程通信:

1、中断系统

2、无名管道

只能用于父子进程,兄弟进程之间的通信,且没有名字,称为无名管道,传输的数据是无格式的,双方可自己定义格式,不依赖于文件系统。

3、命名管道

用于无名管道无法实现的骚操作,没任何关系的进程也能进行通信

PS:务必了解进程阻塞,非阻塞原理,管道文件,进程

应用场景举例说明:如使用php的socketAPI编写一个类似workerman的网络框架,可以做统一中断信号事件处理

中断处理程序只负责接受中断请求,通过管道写端写入数据,主进程通过监听文件描述符上的事件再处理。不会让中断处理程序等待过长的时间。

当然通过命名管道也可以实现跨语言进程间的通信。

$filePath=$argv[1];if(posix_mkfifo($filePath,)0){fprintf(STDOUT,"命名管道创建错误");exit(0);}$fd=fopen($filePath,"w");while(is_resource($fd)){fprintf(STDOUT,"");$data=fgets(STDIN);if($data){fwrite($fd,$data,strlen($data));}}exit(0);

$filePath=$argv[1];if(posix_mkfifo($filePath,)0){fprintf(STDOUT,"命名管道创建错误");exit(0);}$fd=fopen($filePath,"r");while(is_resource($fd)){$data=fgets($fd);if($data){fwrite(STDIN,$data,strlen($data));}}exit(0);

-END-









































白癜风的民间偏方
白癜风的偏方治疗



转载请注明:http://www.xxcyfilter.com/zyxz/zyxz/9880.html