- Erlang教程
- Erlang - 主页
- Erlang - 概述
- Erlang - 环境
- Erlang - 基本语法
- Erlang-Shell
- Erlang - 数据类型
- Erlang - 变量
- Erlang - 运算符
- Erlang - 循环
- Erlang - 决策
- Erlang - 函数
- Erlang - 模块
- Erlang - 递归
- Erlang - 数字
- Erlang - 字符串
- Erlang - 列表
- Erlang - 文件 I/O
- Erlang - 原子
- Erlang - 地图
- Erlang - 元组
- Erlang - 记录
- Erlang - 异常
- Erlang - 宏
- Erlang - 头文件
- Erlang - 预处理器
- Erlang - 模式匹配
- Erlang - 守卫
- Erlang-BIFS
- Erlang - 二进制文件
- Erlang - 乐趣
- Erlang - 进程
- Erlang - 电子邮件
- Erlang - 数据库
- Erlang - 端口
- Erlang - 分布式编程
- Erlang-OTP
- Erlang - 并发
- Erlang - 性能
- Erlang - 驱动程序
- Erlang - 网络编程
- Erlang 有用资源
- Erlang - 快速指南
- Erlang - 有用的资源
- Erlang - 讨论
Erlang - 进程
Erlang中并发的粒度是一个进程。进程是与其他进程同时运行且独立于其他进程的活动/任务。Erlang 中的这些进程与大多数人熟悉的进程和线程不同。Erlang 进程是轻量级的,在与其他进程(内存)隔离的情况下运行,并由 Erlang 的虚拟机 (VM) 进行调度。进程的创建时间非常短,刚刚生成的进程的内存占用非常小,单个 Erlang VM 可以运行数百万个进程。
进程是在spawn方法的帮助下创建的。该方法的一般语法如下所示。
句法
spawn(Module, Name, Args)
参数
模块- 这是一个预定义的Atomics值,必须是 ?MODULE。
名称- 这是定义流程时要调用的函数的名称。
Args - 这些是需要发送到函数的参数。
返回值
返回创建的新进程的进程 ID。
例如
下面的程序显示了生成方法的示例。
-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]).
上述程序需要注意以下几点。
定义了一个名为 call 的函数,该函数将用于创建流程。
spawn 方法使用参数 hello 和 process 调用 call 函数。
输出
当我们运行上面的程序时,我们将得到以下结果。
<0.29.0>"hello" "process"
现在让我们看看进程中可用的其他功能。