`
wudixiaotie
  • 浏览: 138269 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

erlang spawn_link

 
阅读更多

```erlang

-module (test).

-compile(export_all).

 

 

a() ->

    PidB = spawn_link(fun() -> b() end),

    PidC = spawn_link(fun() -> c() end),

    {PidB, PidC}.

b() ->

    receive

    after 2000 ->

        io:format("I'm b!~n"),

        b()

    end.

c() ->

    receive

    after 2000 ->

        io:format("I'm c!~n"),

        c()

    end.

```

 

在shell中运行{PidB, PidC} = test:a(). 然后exit(PidB, kill). 然后发现PidC也被kill掉了,这个测试说明了,a和b连接,b和c连接,如果a运行结束,那么b和c的链接是不会消失掉的,而是继续保持。

0
2
分享到:
评论

相关推荐

    esockd:Erlang通用非阻塞TCPSSL套接字服务器

    V2 Keepalive支持速率限制IPv6支持用法一个简单的TCP Echo服务器: -module(echo_server).-export([start_link/2, init/2]).start_link(Transport, Sock) -> {ok, spawn_link(?MODULE, init, [Transport, Sock])}....

    Erlang入门:构建application练习4(进程link的作用)

    在Erlang中,进程间通信(IPC)是通过消息传递来实现的,而`link`机制是这个通信模型中非常重要的一部分。本教程将通过一个名为"bank2"的实例来探讨`link`的功能和影响。 首先,让我们理解什么是进程`link`。在...

    erlang 中进程

    Erlang中可以通过`spawn/1`、`spawn/2`、`spawn/3`或`spawn_link/1`等函数创建新进程。例如,`spawn/1`接受一个函数,该函数将在新进程中运行。这使得Erlang能轻松地实现并行计算和分布式任务。 3. 进程间通信 ...

    erlang调用java

    你需要在`Java`端创建一个`Erlang`节点对象,然后在`Erlang`端使用`spawn_link`或`spawn_opt`创建一个链接到`Java`的进程。 4. **交互数据类型**:`Erlang`和`Java`的数据类型不同,`Jinterface`提供了一套转换规则...

    Erlang-OTP-API 离线查询英文全手册

    2. **错误处理和容错**:Erlang OTP强调容错性,手册中会有详细介绍如何通过进程监控(`monitor`和`demonitor`)、链接(`link`和`unlink`)以及错误处理回调来确保系统的健壮性。 3. **分布式编程**:OTP提供了...

    [Erlang程序设计]源代码

    此外,Erlang的`exit/1`和`link/1`等机制,用于处理进程间的依赖和错误传播,确保系统的健壮性。 **五、模块与导出** Erlang的模块系统是组织代码的关键。在源代码中,你将看到`module/0`声明,定义了模块的名称,...

    erlang高性能网络库esockd的编译和使用(三)

    spawn(?MODULE, handle_client, [ClientSocket]), accept(ListenSocket). handle_client(Socket) -> receive {tcp, Socket, Data} -> io:fwrite("Received: ~s~n", [Data]), ok = esockd:send(Socket, ...

    erlang-cnode-example

    - Erlang进程可以通过`spawn_link`或`spawn_opt`命令链接到CNode,然后使用`send`或`cast`函数发送消息。 4. **Erlang数据类型的处理** - `ei`库提供了将Erlang术语(如整数、列表、原子等)转换为C数据结构的...

    e语言几个简单多线程写法

    1. **进程创建**:在Erlang中,使用`spawn/1`, `spawn/2`, `spawn/3`, 或 `spawn_link/1`等函数来创建新的进程。这些函数接受一个模块、函数名和参数列表,然后在新进程中运行指定的函数。 2. **进程通信**:Erlang...

    Erlang中文手册

    - 使用 `spawn/1` 或 `spawn_link/1` 创建新进程。 - 示例:`Pid = spawn(Module, Function, Args).` **1.3.2 信息传递** - **消息传递**: Erlang的核心机制之一,用于进程间的通信。 - **发送消息**: - `Pid !...

    global:Erlang的包装

    spawn_link fn -> case Global.whereis_name(MyScheduler.via_tuple()) do nil -> IO.puts("调度器未找到") pid -> GenServer.call(pid, :fetch_task) end end ``` 总之,Elixir 中对 Erlang 的 `global` 模块...

    erlang学习3pdf

    - 使用`link/1`函数链接父进程和子进程,以便父进程可以在子进程终止时接收到消息。 - 明确地将消息发送给处理连接的子进程,而不是依赖于默认的消息队列。 ##### 2.7 处理跨进程数据结构 - **ETS表的使用限制**...

    www.erldoc.com:erlang 中文手册 https

    3. 进程监控:Erlang提供监视器(monitor)和链接(link)机制,当被监视或链接的进程崩溃时,可以触发相应的回调函数。 四、Erlang的模块与函数 1. 模块:Erlang的代码组织单位是模块,模块内包含函数定义、导出...

    ELIXIR:lix剂含量

    通过`spawn_link`,我们可以创建与其他进程链接的进程,当其中一个进程崩溃时,链接的进程会收到通知。而`Process.monitor/1`可以监控进程状态,当被监控进程结束时,监控进程会接收到一个信号,这对于异常处理和...

    exercism:处理细节中的魔鬼(exercism.io)

    - **进程间通信(IPC)**:Elixir提供了`send`和`receive`关键字,以及`spawn`和`spawn_link`函数来创建和管理进程。 4. **Erlang OTP** - **GenServer**:Erlang OTP的行为之一,提供了一种处理异步请求和状态...

Global site tag (gtag.js) - Google Analytics