A Simple Process
Here’s a module that defines a function we’d like to run as a separate process:
| defmodule SpawnBasic do |
| def greet do |
| IO.puts "Hello" |
| end |
| end |
Yup, that’s it. There’s nothing special—it’s just regular code.
Let’s fire up IEx and play:
| iex> c("spawn-basic.ex") |
| [SpawnBasic] |
First let’s call it as a regular function:
| iex> SpawnBasic.greet |
| Hello |
| :ok |
Now let’s run it in a separate process:
| iex> spawn(SpawnBasic, :greet, []) |
| Hello |
| #PID<0.42.0> |
The spawn function kicks off a new process. It comes in many forms, but the two simplest ones let you run an anonymous function and run a named function in a module, passing a list of arguments. (We used the latter here.)
The
Get Programming Elixir ≥ 1.6 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.