国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > PHP教程 > php信号量和共享内存分别是什么

php信号量和共享内存分别是什么

php信号量 共享内存

头像

小妮浅浅

2021-08-19 09:59:235013浏览 · 0收藏 · 0评论

说明

1、信号量:是系统提供的一种原子操作,一个信号数量,同时只有一个进程能操作。

一个过程获得一个信号,必须被过程释放。

2、共享内存:是系统在存储器中打开的一个公共存储器区域,任何一个过程都可以访问。

在同一时刻,可以有多个过程访问该区域,为了保证数据的一致性,需要对该存储器区域进行锁定或信号。

实例

echo "parent progress pid:{$parentPid}\n";
$childList = array();
 
// 创建共享内存,创建信号量,定义共享key
$shm_id = ftok(__FILE__,'m');
$sem_id = ftok(__FILE__,'s');
$shareMemory = shm_attach($shm_id);
$signal = sem_get($sem_id);
const SHARE_KEY = 1;
// 生产者
function producer(){
    global $shareMemory;
    global $signal;
    $pid = posix_getpid();
    $repeatNum = 5;
    for ( $i = 1; $i <= $repeatNum; $i++) {
        // 获得信号量
        sem_acquire($signal);
        
        if (shm_has_var($shareMemory,SHARE_KEY)){
            // 有值,加一
            $count = shm_get_var($shareMemory,SHARE_KEY);
            $count ++;
            shm_put_var($shareMemory,SHARE_KEY,$count);
            echo "({$pid}) count: {$count}\n";
        }else{
            // 无值,初始化
            shm_put_var($shareMemory,SHARE_KEY,0);
            echo "({$pid}) count: 0\n";
        }
        // 用完释放
        sem_release($signal);
        
        $rand = rand(1,3);
        sleep($rand);
    }
}
function createProgress($callback){
    $pid = pcntl_fork();
    if ( $pid == -1) {
        // 创建失败
        exit("fork progress error!\n");
    } else if ($pid == 0) {
        // 子进程执行程序
        $pid = posix_getpid();
        $callback();
        exit("({$pid})child progress end!\n");
    }else{
        // 父进程执行程序
        return $pid;
    }
}
// 3个写进程
for ($i = 0; $i < 3; $i ++ ) {
    $pid = createProgress('producer');
    $childList[$pid] = 1;
    echo "create producer child progress: {$pid} \n";
}
// 等待所有子进程结束
while(!empty($childList)){
    $childPid = pcntl_wait($status);
    if ($childPid > 0){
        unset($childList[$childPid]);
    }
}
// 释放共享内存与信号量
shm_remove($shareMemory);
sem_remove($signal);
echo "({$parentPid})main progress end!\n";

以上就是php信号量和共享内存的介绍,希望对大家有所帮助。更多php学习指路:php教程

推荐操作系统:windows7系统、PHP5.6、DELL G3电脑

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

女性INS大片跳舞| 双男主高干文小说| 第一章破外女初尝云雨| 伦理《少妇的滋味》完整版| 小莹客厅激情38章至50章一区..| 《交换做爰》在线观看| 7C7PCCA片| 女生给男生吃小头头| 女性私密紧致情趣玩具| 《上位》完整版电影在线播放| 成人香蕉 黄 色 网 站 视..| 男性23厘米尺寸图片| 女性三角毛毛区有片毛掉光正常吗| 日本女RAPPER| 摸摸大扔子是讽刺人还是夸人| 趴在床上翘屁股的好处有哪些 | EXO妈妈MV高清视频播放 | 医生含着我的奶边摸边做视频 | 有夫之妇精油按摩的功效与作用| 美国禁忌2在线观看电视剧| 《为子献身》高清完整版在线观看| 美国色情巜教练和女警官视频| 黑人空乘伦理5| 当着全班面被C到高潮哭视频| 女子排尿视频大全| 公交车被上高湖了还能坐吗小说| 《高压监狱2》完整版| 老公水我B里骚水流出来了| 《一滴都不许漏》何泽城林荫| 亲吻刺激战场视频大全免费观看| 善良的公与媳HD中文| 绝色儿媳在线观看免费版电视剧| 小荡货啊灬啊…用力啊快视频| 日韩精品一区二区三区| 两个奶头被吃得又翘又肿特别疼 | 两个人轮流上24小时的班| 中字《喝醉的丈夫被结城送回家》| CSGO2开箱网站| 意大利《空乘》3| 《头等舱》韩国电影在线看| 比白洁还牛的四大书