国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php極簡框架 one 1.6.7發布,新增分布式并發模型Actor

劉明 / 1183人閱讀

摘要:新增新增模型方法,主動刷新數據表結構緩存。分布式并發模型是什么是一種與共享內存對應的并發模型,具有資源獨占性。都分布在不同的機器上。

One - 極簡 . 高性能 . 松耦合 . 分布式 . 可運行于多種環境(cli,apache/php-fpm,swoole)

碼云: https://gitee.com/vicself/one
github: https://github.com/lizhichao/one

適用場景

常規web/app后端服務器

游戲/im即時通訊服務器

tcp/udp物聯網服務器

綜合性項目,各種混合協議通訊

修復問題

使用文件(file)緩存時,不設置過期時間緩存失敗問題。

新增

新增模型方法flushTableInfo,主動刷新數據表結構緩存。

分布式并發模型Actor

Actor 是什么?

是一種與共享內存對應的并發模型,具有資源獨占性。可以理解為一個對象,它有屬性和方法。

主要方法

Actor::init() 創建Actor

Actor::drop($actor_id) 刪除Actor

Actor::call($actor_id, $method, $args) Actor通訊

適合場景

每個對象都在變化,對象之間有通訊的場景。

例1 游戲:

每個角色就是一個actor實例:
屬性:生命值,攻擊力
方法:生命值加/減

class UserActor extends Actor
{
    // 生命值
    private $life_value = 10;

    // 攻擊力
    private $power_value = 5;

    // 長連接fd
    public $fd;

    // 返回自己的actor id
    public function getActorId()
    {
        return $this->actor_id;
    }

    // 改變生命值 并 通知客戶端
    public function changeLifeValue($n)
    {
        $this->life_value += $n;
        $this->noticeClient();
    }

    // 攻擊某個 Actor =>  減少Actor的生命值
    // 被攻擊Actor可以其他進程或者其他機器上
    public function fire($actor_id)
    {
        $this->call($actor_id,"changeLifeValue",[$this->power_value]);
    }

    // 通知客戶端當前的生命值
    public function noticeClient()
    {
        self::$server->push($this->fd,$this->life_value);
    }
}

// 實例化一個角色
$user1 = UserActor::init();

// 獲取這個角色的actor_id
$actor_id = $user1->getActorId();

// 角色死亡 銷毀 actor
UserActor::drop($actor_id);

Vs 共享內存方式

每個用戶的屬性需要儲存在一個公共的地方,每次存取都很麻煩。如果改變用戶的屬性值還需要考慮并發問題。如果屬性更多編寫起來將非常復雜。
例如:用戶a,b,c。 都分布在不同的機器上。a和b同時打到了c;

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31498.html

相關文章

  • reactive programming 的概念

    摘要:構建于四個指導性的原則。在這個文章的其余部分我們將繼續深入異步邊界的概念。電商領域的一致性的重要性并不是碰巧出現的。性能持久性安全都是的方面。來見識下騎士資本集團在年發生軟件故障的經歷。接下來的分鐘發生的事情是一場惡夢。 What is Reactive Programming?為了了解Reactive——從編程范式至其背后的動機,有必要了解現在的開發者和公司在十年前不曾面對的挑戰。 ...

    ?xiaoxiao, 評論0 收藏0
  • 關于布式計算的一些概念

    摘要:關于三者的一些概括總結離線分析框架,適合離線的復雜的大數據處理內存計算框架,適合在線離線快速的大數據處理流式計算框架,適合在線的實時的大數據處理我是一個以架構師為年之內目標的小小白。 整理自《架構解密從分布式到微服務》第七章——聊聊分布式計算.做了相應補充和修改。 [TOC] 前言 不管是網絡、內存、還是存儲的分布式,它們最終目的都是為了實現計算的分布式:數據在各個計算機節點上流動,同...

    Ververica 評論0 收藏0
  • PHP下用Swoole實現Actor并發模型

    摘要:協程與信箱得益于,我們可以基于的協程與快速實現一個信箱模式調度。樣例代碼比如在一個聊天室中,我們可以定義一個房間模型。 什么是Actor? Actor對于PHPer來說,可能會比較陌生,寫過Java的同學會比較熟悉,Java一直都有線程的概念(雖然PHP有Pthread,但不普及),它是一種非共享內存的并發模型,每個Actor內的數據獨立存在,Actor之間通過消息傳遞的形式進行交互調...

    GeekQiaQia 評論0 收藏0
  • JVM并發編程模型

    摘要:本文介紹和點評上的等并發編程模型。異步更適合并發編程。同步使線程阻塞,導致等待。基本模型這是最簡單的模型,創建線程來執行一個任務,完畢后銷毀線程。響應式編程是一種面向數據流和變化傳播的編程模式。起源于電信領域的的編程模型。 本文介紹和點評JVM上的Thread, Thread Pool, Future, Rx, async-await, Fiber, Actor等并發編程模型。本人經驗...

    cppowboy 評論0 收藏0
  • JVM并發編程模型

    摘要:本文介紹和點評上的等并發編程模型。異步更適合并發編程。同步使線程阻塞,導致等待。基本模型這是最簡單的模型,創建線程來執行一個任務,完畢后銷毀線程。響應式編程是一種面向數據流和變化傳播的編程模式。起源于電信領域的的編程模型。 本文介紹和點評JVM上的Thread, Thread Pool, Future, Rx, async-await, Fiber, Actor等并發編程模型。本人經驗...

    wudengzan 評論0 收藏0

發表評論

0條評論

劉明

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<