国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

時隔10年了,我又回來了。說一說進(jìn)程間共享的問題。

jorry橋

在論壇里看到很多關(guān)于多個worker之間如何實(shí)現(xiàn)讀取同一個數(shù)據(jù)的問題。如下:
截圖

其實(shí)這個問題說簡單也簡單,但多少還是要切換一下思維或應(yīng)該去了解一下基礎(chǔ)知識。
在操作系統(tǒng)中,進(jìn)程在資源處理層是獨(dú)立存在的,即多進(jìn)程之間永遠(yuǎn)是相互獨(dú)立的!它們天然是不可能共用一個所謂的變量的。不論是所屬主進(jìn)程還是衍生子進(jìn)程都是這樣。所以不要妄想使用引用的方式將變量地址傳遞給其它進(jìn)程?。?!
因此,這種隔離性有好也有壞,隔離就相互不干擾避免數(shù)據(jù)污染,太隔離了又會導(dǎo)致數(shù)據(jù)不互通不方便,具體就要看場景了。
大家應(yīng)該經(jīng)常遇到這個東西:IPC。
即進(jìn)程間通信(IPC - Interprocess communication),就是在不同進(jìn)程之間傳播或交換信息。
這就是說,進(jìn)程間共享信息是一門單獨(dú)的學(xué)問,沒那么簡單的。

拿linux來說,IPC相關(guān)的內(nèi)容就是解決進(jìn)程間數(shù)據(jù)共享的,它們之間的共享方式,重點(diǎn)就兩個字:通信。
是的,是通信,有通信就必然是有網(wǎng)絡(luò)的有協(xié)議的,所以說,這也并非是一個好處理的東西。

然后推薦看看GlobalData數(shù)據(jù)共享組件的兩個文件:Server和Client,簡單的過一下就理解了。
本來就是服務(wù)端監(jiān)聽一個本地端口,然后在任意進(jìn)程中的客戶端連接這個端口訪問數(shù)據(jù),基于這種通信的邏輯實(shí)現(xiàn)數(shù)據(jù)共享。

希望我的理解能快速打通您對多進(jìn)程編程的認(rèn)知。

683 4 6
4個評論

jorry橋

看看這個例子就明白了:

<?php

use Workerman\Worker;
use Workerman\Timer;

require_once __DIR__ . '/vendor/autoload.php';

$time = date('Ymd-H:i:s');
Worker::$stdoutFile = __DIR__ . "/logs/process-$time.log";

// 進(jìn)程間通信
new \GlobalData\Server('0.0.0.0', 8089);

// 同進(jìn)程變量操作測試
$samevar = 0;

$taskWorker = new Worker();
$taskWorker->name = 'testWorker';
$taskWorker->count = 2;
$taskWorker->user = 'www';
$taskWorker->onWorkerStart = function ($worker) use (&$samevar) {
    $global = new \GlobalData\Client('0.0.0.0:8089'); // 當(dāng)前子進(jìn)程共享全局資源
    $global->add('g_add', 0); // 初始化為0

    Timer::add(2, function () use ($worker, &$samevar, $global) {
//        global $global;
        $global->increment('g_add', 1);

        echo '進(jìn)程PID:'.posix_getpid().' 執(zhí)行次數(shù):'.++$samevar."\n";
        echo '所有子進(jìn)程執(zhí)行總次數(shù):'.$global->g_add."\n";
    });
};

// 運(yùn)行worker
Worker::runAll();

  • 暫無評論
Tinywan

不錯

  • 暫無評論
chaz6chez

http://m.wtbis.cn/plugin/133

這個基于apcu也就是mmap的共享內(nèi)存進(jìn)行IPC,不涉及到通訊,不涉及到網(wǎng)絡(luò)堆棧,性能更高

  • jorry橋 2025-01-09

    不錯不錯,我說的多少有點(diǎn)絕對了 ^_^

掌柜

workerman原來已經(jīng)十年了

  • 暫無評論

jorry橋

2314
積分
0
獲贊數(shù)
0
粉絲數(shù)
2014-08-17 加入
??