Erlang - Quy trình
Mức độ chi tiết của đồng thời trong Erlang là một quá trình. Quy trình là một hoạt động / nhiệm vụ chạy đồng thời và độc lập với các quy trình khác. Các quy trình này trong Erlang khác với các quy trình và luồng mà hầu hết mọi người đều quen thuộc. Các quy trình Erlang có dung lượng nhẹ, hoạt động trong (bộ nhớ) cách ly với các quy trình khác và được lên lịch bởi Máy ảo (VM) của Erlang. Thời gian tạo quy trình rất thấp, dung lượng bộ nhớ của một quy trình vừa sinh ra là rất nhỏ và một máy ảo Erlang duy nhất có thể có hàng triệu quy trình đang chạy.
Một quy trình được tạo ra với sự trợ giúp của phương pháp đẻ trứng. Cú pháp chung của phương thức được đưa ra dưới đây.
Cú pháp
spawn(Module, Name, Args)
Thông số
Module - Đây là một giá trị nguyên tử được xác định trước, phải là? MODULE.
Name - Đây là tên của hàm sẽ được gọi khi tiến trình được xác định.
Args - Đây là các đối số cần được gửi đến hàm.
Giá trị trả lại
Trả về id quy trình của quy trình mới được tạo.
Ví dụ
Ví dụ về phương pháp đẻ trứng được hiển thị trong chương trình sau.
-module(helloworld).
-export([start/0, call/2]).
call(Arg1, Arg2) ->
io:format("~p ~p~n", [Arg1, Arg2]).
start() ->
Pid = spawn(?MODULE, call, ["hello", "process"]),
io:fwrite("~p",[Pid]).
Những điều sau đây cần được lưu ý về chương trình trên.
Một hàm được gọi là cuộc gọi được định nghĩa và sẽ được sử dụng để tạo quá trình.
Phương thức spawn gọi hàm gọi với các tham số hello và process.
Đầu ra
Khi chạy chương trình trên, chúng ta sẽ nhận được kết quả như sau.
<0.29.0>"hello" "process"
Bây giờ chúng ta hãy xem xét các chức năng khác có sẵn với các quy trình.
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | is_pid Phương pháp này được sử dụng để xác định xem có tồn tại một id quy trình hay không. |
2 | is_process_alive Điều này được gọi là is_process_alive (Pid). Một Pid phải tham chiếu đến một tiến trình tại nút cục bộ. |
3 | pid_to_list Nó chuyển đổi một id quy trình thành một danh sách. |
4 | đã đăng ký Trả về một danh sách với tên của tất cả các quy trình đã đăng ký. |
5 | bản thân Một trong những BIF được sử dụng phổ biến nhất, trả về pid của các quá trình gọi. |
6 | Đăng ký Nó được sử dụng để đăng ký một tiến trình trong hệ thống. |
7 | ở đâu Nó được gọi là whereis (Tên). Trả về pid của quá trình đã được đăng ký với tên. |
số 8 | hủy đăng ký Điều này được sử dụng để hủy đăng ký một quy trình trong hệ thống. |