Erlang防止同時註冊同乙個程序

2021-06-03 08:34:17 字數 786 閱讀 1245

從中學到了以下幾點:

1、繫結程序,還是很方便滴。

2、if和case的用法, 據我目前的了解程度來看,if可以新增預設匹配規則(在if判斷語句中,應該至少有乙個是true,否則就會異常,一般把if最後乙個條件判斷設定為true,以匹配未匹配的規則)這點有點像c中case的default,而erlang中的case只匹配列出來的條件,如果沒有匹配,則報異常,對於結果不可預料的結果判斷,可以使用if判斷。

-module(p_atom).

-export([start/2,stop/1]).

start(anatom,fun) ->

l = whereis(anatom),

if l =:= undefined ->

%%io:format("has not been built yet!!");

register(anatom,spawn(fun() -> tick(fun) end));

true ->

io:format("the ~p ~p is exist!",[anatom,l]),

void

end.

tick(fun) ->

receive

stop -> void

after 2000 ->

fun(),

tick(fun)

end.

stop(anatom) -> anatom ! stop.

~                                  

C C 業務 多程序同時讀寫同乙個檔案

include intflock int fd,int operation 引數說明 返回值說明 返回0表示成功,若有錯誤則返回 1,錯誤 存於errno。lock 會依引數operation所指定的方式對引數fd所指的檔案做各種鎖定或解除鎖定的動作。此函式只能鎖定整個檔案,無法鎖定檔案的某一區域。...

git 同時向兩個倉庫提交同乙個分支

目的 1 為了同時在兩個git倉庫中備份 以避免某個倉庫崩潰的情況!2.以git push origin master 同時備份兩個倉庫 以oschina 與 csdn為例 步驟 1.分別在兩個倉庫建立相應的專案 2.git remote add origin aaa 3.git remote ad...

vim在同乙個視窗中同時編輯多個檔案

一 如果在終端中開沒有開啟vim,可以 橫向分割顯示 vim o filename1 filename2 縱向分割顯示 vim o filename1 filename2 二 如果已經用vim開啟了乙個檔案,想要在視窗中同時再開啟另乙個檔案 橫向分割顯示 vs filename 縱向分割顯示 sp ...