php进程(线程)通信基础之System V共享内存简单实例分析
2019-12-02 18:11
911 查看
本文实例讲述了php进程(线程)通信基础之System V共享内存。分享给大家供大家参考,具体如下:
PHP默认情况没有开启功能,要支持该功能在编译PHP的时候要加入下面几个选项 System V消息,--enable-sysvmsg System V信号量支持,--enable-sysvsem System V共享内存支持,--enable-sysvshm
PHP还挺shmop共享内存,在编译的时候开启 --enable-shmop
System V共享内存的相关函数:
1: 创建信号量唯一标识符
$ftok = ftok(__FILE__, 'a');
2: 创建共享内存端
$id = shm_attach ( $ftok, 1000 , 0666 )
3: 断开与共享内存段的连接
shm_detach ( $id )
4: 获取一个变量值
$val = shm_get_var ( $id , $key )
5: 检测变量是否存在
shm_has_var ( $id , $key )
6: 添加一个值到共享内存里
shm_put_var ( $id , $key , $val )
7: 从共享内存中删除一个变量
shm_remove_var ( $id , $key )
8: 从系统中删除共享内存
shm_remove ( $id)
<?php $tmp = tempnam(__FILE__, 'PHP'); $key = ftok($tmp, 'a'); $shmid = shm_attach($key); $counter = 0; shm_put_var( $shmid, 1, $counter ); class CounterThread extends Thread { public $shmid; public $is_runing = true; public function __construct($shmid){ $this->shmid = $shmid; } public function run() { $counter = shm_get_var( $this->shmid, 1 ); $counter++; shm_put_var( $this->shmid, 1, $counter ); printf("Thread #%lu says: %s\n", $this->getThreadId(),$counter); } } for ($i=0;$i<10;$i++){ $threads[] = new CounterThread($shmid); } for ($i=0;$i<10;$i++){ $threads[$i]->start(); } for ($i=0;$i<10;$i++){ $threads[$i]->join(); } shm_remove( $shmid ); shm_detach( $shmid );
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- php进程(线程)通信基础--System V共享内存
- php和数据库结合的一个简单的web实例 代码分析 (php初学者)
- Play Framework 简单实例分析以及基础知识整合
- 进程和线程的简单实例
- PHP进程通信基础——shmop 、sem系列函数使用
- linux基础编程:进程通信之System V IPC:消息队列,信号量,共享内存
- php实现简单的语法高亮函数实例分析
- WinSocket实现进程通信的一个简单实例
- php中socket常用函数及简单的实例分析
- Linux进程通信之System V共享内存
- PHP多线程编程之管道通信实例分析
- 使用DNode实现php和nodejs之间通信的简单实例
- PHP CLI编程基础知识积累(进程、子进程、线程)
- Android中的跨进程通信方法实例及特点分析(一):AIDL Service
- PHP钩子与简单分发方式实例分析
- python实现多进程通信实例分析
- Ajax+PHP简单基础入门实例教程
- gcc编程环境基础4--ld命令和u-boot中的lds文件实例和简单实例分析
- 从程序实例角度分析进程与线程
- php和数据库结合的一个简单的web实例 代码分析 (php初学者)