日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OTP服务器

發布時間:2023/11/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OTP服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
defmodule Sequence.Server douse GenServerdef handle_call( :next_number, _from, current_number) do{ :reply, current_number, current_number + 1}  #reply告訴OTP將第二個元素返回給客戶端end end

  use的效果將OTP GenServer的行為添加到當前模塊。這樣它就可以處理所有的回調函數。這也意味著我們不需要在模塊中定義所有的回調函數——該行為定義了所有默認的回調函數。

  當客戶端調用服務器時,GenServer調用接下來的hand_call函數。它接受:1、客戶端傳遞給調用的信息。2、客戶端的PID。3、服務器狀態。    

  其返回一個元組給OTP { :reply, current_number, current_number + 1 },reply告訴OTP需要回復客戶端,第二個是返回值,第三個定義了新的狀態。該狀態子在handle_call下次被調用時作為最后一個參數傳入。

  

  啟動服務器:

iex -S mix { :ok, pid } = GenServer.start_link(Sequence.Server, 100)    #100是狀態,相當于該進程的一個屬性。GenServer.call( pid, :next_number ) # 100 GenServer.call( pid, :next_number ) # 101

  start_link函數的行為類似于spawn_link。它要求GenServer創建一個新的進程并與我們相關聯,并傳遞了一個狀態值進去。返回服務器的pid

  call調用pid進程里的handle_call函數,將其第二個參數(:next_number )與handle_call的第一個參數做匹配。handle_call的第一個參數也可以是元組。

def handle_call({ :set_number, new_number}, _form, _current_number ) do{:reply, new_number, new_number } end然后這樣調用 GenServer.call(pid, {:set_number, 999} ) # 999

?

cast

  cast函數調用服務器,但不等待回復。cast發送給handle_cast,由于可能沒有相應,所以handle_cast只需要兩個參數。放棄了第二個代表客戶端pid的參數。其返回元組為{ :noreply, new_state }

defmodule Sequence.Server douse GenServerdef handle_call( :next_number, _from, current_number) do{ :reply, current_number, current_number + 1}enddef handle_cast({:increment_number, delta}, current_number) do{ :noreply, current_number + delta}end endGenServer.call(pid, :next_number)   #100 GenServer.call(pid, :next_number)    #101 GenServer.cast(pid, {:increment_number, 200})    # :ok GenServer.call(pid, :next_number)   #302

?

回調函數

  init(start_arguments)。當GenServer啟動服務器時被調用,默認將服務器狀態設置為出入參數的值。

  handle_call(request, from, state)。客戶端使用GenServer.call(pid, request)時被調用。成功返回{ :reply, result, new_state }

  handle_cast(request, state)。用于響應GenServer.cast(pid, request)。成功的相應是{ :noreply, new_state },也能返回{ :stop, reason, new_state }

  handle_info(info, state)。用于處理call和cast以外的傳入消息。

  terminate(reason, state)。當服務器將終止時該函數被調用。

  code_change(from_version, state, extra)。理由OTP替換正在運行的服務器而無需停止整個系統。

  format_status(reason, [pdict, state])。定制服務器的狀態顯示。

?

給進程命名

  啟動服務器的時候加上 name:參數 。

{ :ok, pid } = GenServer.start_link(Sequence.Server, 100, name::seq) GenServer.call(:seq, :next_number)

?

整理接口

  

defmodule Sequence douse GenServerdef start_link(current_number) doGenServer.start_link(__MODULE__, current_number, name: __MODULE__)enddef next_number doGenServer.call __MODULE__, next_numberenddef increment_number(delta) doGenServer.call __MODULE__, {:increment_number, delta}enddef handle_call( :next_number, _from, current_number) do{ :reply, current_number, current_number + 1}enddef handle_cast({:increment_number, delta}, current_number) do{ :noreply, current_number + delta}end end

?

轉載于:https://www.cnblogs.com/lr1402585172/p/11512363.html

總結

以上是生活随笔為你收集整理的OTP服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日本黄色 | 亚洲高清视频一区二区 | 调教一区二区三区 | 久久久久久久久久一区 | 超碰66 | 青青草在线免费视频 | 99久久精品一区二区三区 | 欧美成人一区在线观看 | 日韩精品在线免费 | 久久精品久久精品久久 | 成人久久久精品国产乱码一区二区 | 色婷婷伊人 | 亚洲精品乱码久久久久久蜜桃麻豆 | 91九色蝌蚪视频 | 午夜国产福利在线观看 | 亚洲欧美精品在线观看 | 国产一区二区精彩视频 | 99一区二区三区 | 色婷婷久久久亚洲一区二区三区 | 成人一级影视 | 日韩啊v| 狠狠干天天操 | 精品久久久久久久久久久国产字幕 | 日韩在线第一 | 日韩av一二三区 | 肉肉av福利一精品导航 | 国产老头户外野战xxxxx | 香蕉久久夜色精品国产使用方法 | 婷婷色激情 | 亚洲精品在线看 | 国产二级视频 | 日日摸夜夜添狠狠添欧美 | 国产99久久久久 | 久久高清内射无套 | 亚洲色偷偷色噜噜狠狠99网 | 久久92| 超碰在线网址 | 亚洲一区二区在线免费观看 | 成人国产av一区二区三区 | 日本成人免费在线视频 | av一级二级 | 一起操在线观看 | 极品美女高潮出白浆 | 91免费网址 | 精品少妇人妻av免费久久久 | 国产精品成人Av | 精品一区亚洲 | 国产 一二三四五六 | 奶水喷溅 在线播放 | 在线麻豆 | 国产后入又长又硬 | 黄色不打码视频 | 亚洲欧美一区二区三区情侣bbw | 亚洲免费福利 | 一本一本久久a久久精品综合麻豆 | 天堂在线观看 | 精品国产中文字幕 | 在线免费成人网 | 久久亚洲av无码西西人体 | 最新av中文字幕 | 伊人狼人综合 | 一级黄色片大全 | 亚洲看片 | 性欧美久久 | 久久yy | 中文字幕av网 | 人人爽人人爽人人片av | 美女黄色一级 | 日韩成人福利 | 国产成人精品国内自产拍免费看 | 日韩精品人妻中文字幕 | 激情视频区 | 日韩免费观看视频 | 一级真人毛片 | 久久免费在线 | 亚洲黄色三级 | 国产精品美女毛片真酒店 | 亚洲精品无码久久久久久久 | 欧美区日韩区 | 狠狠躁夜夜躁人 | 美女脱了裤子让男人捅 | 亚洲国产高清视频 | 四虎精品欧美一区二区免费 | 国产男女猛烈无遮挡免费观看网站 | 欧美老肥妇做.爰bbww视频 | 成人高潮视频 | 波多野结衣办公室双飞 | 免费操 | 中文字幕――色哟哟 | 一区二区三区中文视频 | 欧美绿帽合集xxxxx | 日日夜夜欧美 | 国产精品久久久久久中文字 | 色欲久久久天天天综合网 | 日韩一级二级三级 | 亚洲日本香蕉视频 | 夜夜嗨国产| 日本在线资源 | 亚洲欧美一区二区三区久久 |