Basic Study for Erlang #2
Upcoming SlideShare
Loading in...5
×
 

Basic Study for Erlang #2

on

  • 2,461 views

Basic Study for Erlang #2

Basic Study for Erlang #2

Statistics

Views

Total Views
2,461
Views on SlideShare
2,458
Embed Views
3

Actions

Likes
6
Downloads
25
Comments
0

1 Embed 3

http://www.mefeedia.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Basic Study for Erlang #2 Basic Study for Erlang #2 Presentation Transcript

    • Erlang M.Ikuta (@cooldaemon) 2010/7/28
    • • ( ) • Erlang • • /
    • • ( ) • Erlang • • /
    • • Erlang •
    • • Erlang ( ) DSL • ( ) • DSL ( ) •
    • • Erlang • •
    • • Erlang • • ( )
    • • Erlang • • ( )
    • • … • GC • Supervisor, gen_*, proc_lib
    • • … • ( )
    • • ( ) • Erlang • • /
    • • • •
    • • • •
    • • … • • •
    • • … • •
    • • • ID • (link/1, monitor/2) •
    • • • Erlang
    • • • i/0,1, ni/0 • process_info/1,2 • pman:start/0 • etop, getop
    • • • Erlang Shell ni() nodes(). • Mac pman, getop X
    • • • etop, getop PATH code:lib_dir/1
    • • • Msgs, MsgQ • • ( )
    • • • Reds • Reductions •
    • • • Reds • process_flag/2
    • • • spawn/1,2,3,4 • spawn_link/1,2,3,4 • spawn_monitor/1,3 • spawn_opt/2,3,4,5
    • • • spawn/1,3 • spawn(fun () -> ok end). •
    • • • spawn/1,3 • ( ) •
    • • • spawn/1,3 • try catch • catch
    • • • spawn/2,4 • • (register/1 )
    • • • spawn_link spawn_monitor … • spawn (link ) • spawn
    • • • • erlang:system_info(process_limit). • • erl +P 13421772
    • • • register/2 • unregister/1 • whereis/1 • global ( )
    • • • register/2 • register(Name, Pid). • ID
    • • • register/2 • • ( )
    • • • register/2 •
    • • • whereis/1 • whereis(Name). • ID • ID
    • • • unregister/1 • global
    • • • ! • (Pid | Name) ! Message. • ( ) • ( )
    • • • • •
    • • • • sample/send_message_vs_call_function.erl •
    • • • • • •
    • • • … • •
    • • • receive • receive Message -> ok end. • ( ) •
    • • • 0 • (_ ) •
    • • • •
    • • • • ID • (make_ref/1 )
    • • ( ) • link/1 • erlang:monitor/2 • exit/1,2 • process_flag/1
    • • ( ) • link/1 • link(Pid). • link/1 •
    • • ( ) • link/1 • ID
    • • ( ) • erlang:monitor/2 • erlang:monitor(process, Pid). • ( )
    • • ( ) • erlang:monitor/2 • • {‘DOWN’, Reference, process, Pid, Reason}
    • • ( ) • link/1, erlang:monitor/2 •
    • • ( ) • exit/1 • exit(Reason). • •
    • • ( ) • exit/1 • normal kill
    • • ( ) • exit/1 • normal • • exit(normal).
    • • ( ) • exit/1 • kill killed
    • • ( ) • exit/2 • exit(Pid, Reason). • Pid
    • • ( ) • exit/2 • •
    • • ( ) • process_flag/2 • process_flag(trap_exit, true). •
    • • ( ) • process_flag/2 • • {‘EXIT’, Pid, Reason}
    • • ( ) • process_flag/2 • normal • kill
    • • ( ) • • • •
    • • ( ) •
    • • ( ) • Erlang • • /
    • • • OTP • OTP
    • • Client/Server • sample/server_client/server_client.erl • Key-Value Store
    • • Client/Server • sample/server_client/server_client.erl • get/1 • self/0, make_ref/1 • set/2
    • • Client/Server • sample/server_client/server_client_pm.erl • server_client.erl • Parameterized Module
    • • Client/Server • sample/server_client/server_client_pm.erl • register/2 … • •
    • • Client/Server • sample/server_client/server_client_tx.erl • •
    • • Finite State Machine • sample/fsm/finite_state_machine.erl • = •
    • • Finite State Machine • sample/fsm/mutex.erl • Mutex Semaphore
    • • Finite State Machine • sample/fsm/mutex.erl • •
    • • Event Managers and Handlers • sample/event/*.erl •
    • • Event Managers and Handlers • sample/event/*.erl • Behaviour • • try catch
    • • Supervisor Tree • sample/supervisor/my_supervisor.erl • • normal, undef •
    • • ( ) • Erlang • • /
    • • • server_client_tx.erl • get/0
    • • • sample/tcp_server echo • tcp_server
    • • … • Supervisor • ets
    • • … • gen_tcp gen_udp Supervisor • gen_server proc_lib