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

內(nèi)存持久化和GlobalData的選擇問題

allbluz

這里概念有些模糊,希望高手稍作解釋,感激不盡!

我在start_businessworker.php中做一個(gè)持久化的變量user_list = []
與在GlobalData中add(user_list,array())有何區(qū)別?

我的需求是在linux下,4個(gè)業(yè)務(wù)worker可以同時(shí)維護(hù)一個(gè)用戶列表

謝謝!

4966 4 0
4個(gè)回答

lalala

GlobalData可以多進(jìn)程共用

  • 暫無評(píng)論
allbluz

在linux下,start_businessworker.php啟動(dòng)后啟動(dòng)的是4個(gè)進(jìn)程對(duì)嗎?
那么在start_businessworker.php下做的一個(gè)持久化的變量,對(duì)4個(gè)進(jìn)程而言是4個(gè)變量還是1個(gè)?

  • 暫無評(píng)論
maq

什么是【持久化的變量】?沒這個(gè)概念啊……

如果你說的是【全局變量】的意思,那么,對(duì)于每個(gè)進(jìn)程而言,它們都是在用自己內(nèi)存空間的那個(gè)全局變量,互相是無關(guān)的。

  • allbluz 2018-03-30

    持久化的變量這個(gè)詞出自官方的文檔。意思是每個(gè)進(jìn)程中的變量是持久存在于內(nèi)存中的,MYSQL的組件里的$db就是這個(gè)意思

  • maq 2018-03-30

    @3676:給個(gè)鏈接唄,我去學(xué)習(xí)一下 :)

maq

對(duì)于 PHP 這種語言來說,能夠【在內(nèi)存中持久保存】的變量只有兩種,全局變量和局部靜態(tài)變量。

無論哪種,當(dāng)一個(gè)進(jìn)程分裂成多個(gè)進(jìn)程(發(fā)生在 Worker::runAll() 的時(shí)候)后,它們都各自獨(dú)立存在于自己進(jìn)程的內(nèi)存空間,互相是無關(guān)的。如果變量的值產(chǎn)生于進(jìn)程分裂之前,它們的值也只是碰巧相同而已。不過一種特別的情況是,如果變量是資源類型,比如數(shù)據(jù)庫連接,則它們代表的是同一個(gè)物理資源,此時(shí)使用這個(gè)資源的時(shí)候要小心資源沖突的問題。

GlobalData 是以進(jìn)程間通信的方式實(shí)現(xiàn)數(shù)據(jù)共享。

回到你的應(yīng)用場景,你應(yīng)該使用 GlobalData 或者類似的數(shù)據(jù)共享方案,才能實(shí)現(xiàn)【4個(gè)業(yè)務(wù)worker可以同時(shí)維護(hù)一個(gè)用戶列表】。

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??