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

workman進程中是單線程么

liub0003

rt,workman 進程是單線程么,就是輪詢和執(zhí)行回調(diào), 是會沖突么?

如果我只啟動一個進程的話, 是不是無論timer 還是 onmessage 中的回調(diào),

都是按順序一個一個執(zhí)行的,處理數(shù)據(jù)都不需要加鎖?

還是 onMessage 之間會同時訪問相同的數(shù)據(jù)?

謝謝~~~以前用c++, 剛開始接觸php開發(fā)游戲服務器, 考慮的互斥有些多

5353 1 1
1個回答

walkor 打賞

rt,workman 進程是單線程么,就是輪詢和執(zhí)行回調(diào), 是會沖突么?

多進程單線程,輪詢和回調(diào)不會沖突

如果我只啟動一個進程的話, 是不是無論timer 還是 onmessage 中的回調(diào),
都是按順序一個一個執(zhí)行的,處理數(shù)據(jù)都不需要加鎖?
還是 onMessage 之間會同時訪問相同的數(shù)據(jù)?

對,順序執(zhí)行,不需要加鎖。

  • dingdejing 2019-03-17

    補充問一下,如果保證了用戶只在一個進程通信的話,這個用戶無論并發(fā)多少請求,實際上都是同步執(zhí)行的嗎,比如在這個進程內(nèi)為用戶實例化了一個角色對象,針對角色對象內(nèi)的屬性更改,背包數(shù)據(jù)增刪改,都不需要加鎖防止并發(fā)修改對吧,肯定是一個信息過來處理完了才會處理下一個信息嗎

  • dingdejing 2019-03-17

    目前就是把角色的一些屬性冗余到了內(nèi)存中(globaldata能保證原子性的情況下數(shù)據(jù)結(jié)構(gòu)太簡單無法滿足使用),之前用了mysql的get_lock來加鎖處理,寫了一半才想起來,對用戶來說mysql鏈接一直是一個,所以這個鎖現(xiàn)在加了和沒加一樣,所以在考慮是不是要自己加一個內(nèi)存的鎖來保證數(shù)據(jù)完整,但是如果用戶自己不會并發(fā)處理數(shù)據(jù)的話,那么我完全也不需要考慮加鎖問題了,麻煩給解答一下

  • dingdejing 2019-03-17

    另外上面說的是 用戶自己對自己資源的爭奪問題

    還有一個問題就是 全服游戲玩家,這時候涉及到多個進程了,如果先不談多個進程,只談一個進程,那么在同一個進程內(nèi)的多個玩家,是否也是同步執(zhí)行的邏輯,不會有資源爭搶的問題,一個進程內(nèi)所有的消息回調(diào) 處理都是同步的嗎,這樣的話共同去修改內(nèi)存的某個數(shù)據(jù)是否保證是原子性的

  • walkor 2019-03-18

    一個進程內(nèi)的所有業(yè)務邏輯都是串行的,一個進程內(nèi)的業(yè)務代碼不會有并發(fā)執(zhí)行的情況。如果保證了用戶只在一個進程通信,無論并發(fā)多少請求,實際上都是同步執(zhí)行的。如果角色對象的屬性是內(nèi)存的變量,則不需要加鎖。如果角色對象的屬性存儲在外部存儲中,并且沒有其它進程操作這些屬性也不需要加鎖,否則需要。

  • walkor 2019-03-18

    多個用戶也是一樣的情況,單個進程內(nèi)業(yè)務代碼不會并發(fā)執(zhí)行,都是串行的,不會有并發(fā)操作內(nèi)存變量的問題。操作外部存儲的時候仍然需要考慮多個進程并發(fā)操作的情況。

年代過于久遠,無法發(fā)表回答
??