回覆列表
  • 1 # 使用者6740714984614

    遊戲很多也是用一點多執行緒的,但多程序的比較少,

    多執行緒比如你玩棋牌遊戲的時候,本人出牌倒計時,時鐘控制繪製和你點出牌動作繪製,就可以用多執行緒,1個執行緒控制倒計時,1個執行緒在執行遊戲邏輯捕捉你滑鼠動作繪製你點什麼牌,

    當時鍾繪製到0或者對面邏輯執行緒出牌了改變時鐘,就會關閉繪製執行緒,

    遊戲邏輯出牌會改變時鐘,但一直不出牌倒計時變數為0,遊戲邏輯就會按照默認出牌方式出牌,

    小的函式可以用多執行緒搞一下,但多程序太少了,1是小函式用多程序也要浪費很大的記憶體空間,2因為程序和程序要相互配合,你多程序控制一個遊戲,那你不害怕畫面不同步嗎,不怕邏輯全亂裡嗎,多執行緒可以公用的一個記憶體空間,你執行後記憶體是直接改變的,每個執行緒根據記憶體情況做事情,就OK了,但多程序不一樣呀,程序之間記憶體空間是彼此獨立的,根本不知道對方執行到哪裡了,如果想知道,就要用程序之間的通訊了,通訊很麻煩的,這就涉及到阻塞非阻塞,而且通訊方法還涉及到不同方法能傳送的資訊是不一樣的,這會影響執行的邏輯,也會影響執行的效率,不寫不知道,一寫嚇一跳,你如果是多執行緒,一個執行緒改變了一個例項屬性,其他執行緒呼叫例項的時候,自然也是會呼叫改變後的,但如果是多程序,那因為空間彼此獨立,你不用程序之間通訊,那例項的屬性還都是彼此獨立的,你一個改了,其他的都沒變,如果你想讓其他的也變化,你就要去通訊告訴其他程序,而其他程序接收資訊,根據不同的情況,要用不同的通訊方式(訊號傳輸可以非同步,但傳送資訊是訊號,攜帶的資訊量太少了,本地套接字,只能傳字元,管道傳送多用父子程序,你這一個資訊要傳多人,就有建立多個管道,而且管道只能傳送字元什麼的,列表都不能傳,佇列也麻煩,當然他能傳的型別多,可以傳列表元組什麼的,就共享記憶體比較快,還能1對多,但要提前定義好值的型別,而程式設計大家都是面向物件程式設計,這些方法根本沒能傳例項的,每次接到了訊息,還要在寫改例項的語句,賊麻煩的)

  • 中秋節和大豐收的關聯?
  • 工作協議與勞動合同的區別?