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.