這篇不承接上一篇,因為時間太趕了,所以來看 Elixir 並行程序的部分。
Elixir 的 Process 跟作業系統的 process 不同,是Erlang VM 的 Process,比起一般的 process 更加輕量,因此可以同時處理數千個 process 也不會有問題。
如果我們需要啟動一個新的 process,我們只需要使用 spawn/3
這個 function就好。
iex> spawn(Test, :sum, [3, 6])
如此一來,變可以異步的處理許多任務了。
spawn 接收三個參數,第一個是模組名,第二個是模組函式的名稱(atom),然後是帶入的參數。
spawn 會回傳 pid ,並且透過send pid, data
,可以將data傳遞給 process 。