Erlang入门:进程实例操作与练习2

%% @author Rolong<[email protected]>

-module(process2).
-compile(export_all).
-include("common.hrl").

%% Usage:
%% 启动服务:process2:start().
%% 查看时间:myserver ! now.
%% 结束服务:myserver ! stop.

start()->
    Pid = spawn(?MODULE, server, []),
    %% 给服务注册一个名字:myserver
    erlang:register(myserver, Pid).

server() ->
    receive
        Msg ->
            ?MODULE:handle(Msg),
            server()
    end.

handle(now) ->
    ?I("Current time is: ~p", [erlang:localtime()]);

handle(stop) ->
    ?I("stopping ..."),
    exit(normal);

handle(Msg) ->
    ?I("received undefined message:~p", [Msg]).

时间: 2024-10-14 18:48:48

Erlang入门:进程实例操作与练习2的相关文章

Erlang入门:进程实例操作与练习1

%% @author Rolong<rolong at vip dot qq dot com> -module(process1). -compile(export_all). -define(I(F), io:format(F++"~n", [])). -define(I(F, A), io:format(F++"~n", A)). %% Usage: %% %% 启动进程:Pid = process1:start(Fun). %% Fun = fun

2)Linux程序设计入门--进程介绍

2)Linux程序设计入门--进程介绍 Linux下进程的创建 前言: 这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到: 进程的概念 进程的身份 进程的创建 守护进程的创建 1.进程的概念 Linux操作系统是面向多用户的.在同一时间可以有许多用户向操作系统发出各种命 令.那么操作系统是怎么实现多用户的环境呢? 在现代的操作系统里面,都有程序和进程 的概念.那么什么是程序,什么是进程呢? 通俗的讲程序是一个包含可以执行代码的文件 ,是一个静态的文件.而进程是一个开始执行但是还

解决erlang和java同时操作一张表,造成锁表问题

作者:张昌昌 1.问题描述 Erlang端通过odbc去写oracle一张表,同时java通过jdbc驱动也去写这张表,当同时多次发生这种写操作时,这个表就被锁. 2.问题解决 思路:利用适配器原理,适配erlang和java的数据库连接,让erlang端对数据表的操作与java端对该数据表的操作,分时序顺序进行,其中一端在进行写操作时上锁 另一端就不能操作,直到他操作完成释放锁,另一端才能操作. 该适配器采用java编写,通过otp.jar让erlang与java进行通信,erlang和jav

erlang监控进程在启动进程退出后异常退出原因分析

一.问题引出 erlang监控进程在启动时设置了trap_exit为true,即会捕获到退出信号,会将退出信号转换为{'EXIT',Pid,Reason}存入自己的邮箱中,因此与监控进程link关系的进程退出后,监控进程能够很坦然的截获退出信号,自身不退出.启动erlang监控进程的进程,会和监控进程建立link关系,然而当启动进程退出时,监控进程没有象正常的情况,发生了异常退出,为什么设置了trap_exit为true,还会退出呢? 二.原因分析 查看supervisor的源码,supervi

Erlang入门:构建application练习5(监督树)

1.前言 在<Erlang入门:构建application练习4(进程link的作用)>一文中, 提到了一个问题: 如果系统进程内部发生了错误而异常退出,将会出现什么情况? 在application中,像bank_center这样的系统进程,如果终止了,整个系统就无法正常运行,为了让bank_center意外终止时能自动重启,这里就要请Erlang的监督树出来帮忙了. 演示项目bank3目录结构: 2.编写监督树回调模块bank_sup.erl 监督树的回调模块只有一个函数init/1 %%

Mybatis最入门---ResultMaps实例篇(一对多查询)

[一步是咫尺,一步即天涯] 接上文,我们来演示在实际开发中,如何配置和使用resultMap实现一对多查询. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,Spring,SQLyog,Tomcat,web基础 特别的,作为演示程序,还请各位看官不要纠结数据库的细节内容 ----------------------------------------------------------------------------------------------

Erlang入门(二)—并发编程

Erlang中的process——进程是轻量级的,并且进程间无共享.查了很多资料,似乎没人说清楚轻量级进程算是什么概念,继续查找中...闲话不提,进入并发编程的世界.本文算是学习笔记,也可以说是<Concurrent Programming in ERLANG>第五张的简略翻译. 1.进程的创建    进程是一种自包含的.分隔的计算单元,并与其他进程并发运行在系统中,在进程间并没有一个继承体系,当然,应用开发者可以设计这样一个继承体系.    进程的创建使用如下语法: Pid = spawn(

【Git入门之四】操作项目

[Git入门之四]操作项目 - JackyStudio - 博客频道 - CSDN.NET 1.查看操作日记 <git log>用于查看操作日记详情.因为Git是分布式的,采用SHA1这样的版本号可有效的防止版本冲突. [cpp]?view plaincopy ? #查看操作日记,底下那串长长的数据就是SHA1?ID,表示当前版本号?? $Snbsp;git?log?? commit?aea0365712908805bc28540b4db9fd2f15360a8b?? Author:?Jack

Netty5快速入门及实例视频教程(整合Spring)

Netty5快速入门及实例视频教程+源码(整合Spring) https://pan.baidu.com/s/1pL8qF0J 01.传统的Socket分析02.NIO的代码分析03.对于NIO的一些疑惑04.Netty服务端HelloWorld入门05.Netty服务端入门补充06.Netty客户端入门07.如何构建一个多线程NIO系统08.Netty源码分析一09.Netty源码分析二10.Netty5服务端入门案例11.Netty5客户端入门案例12.单客户端多连接程序13.Netty学习