A Crash Course on
Tony Arcieri
GoGaRuCo
September 15th, 2012
Saturday, September 15, 12
Slide 2
Slide 2 text
Saturday, September 15, 12
Slide 3
Slide 3 text
We’re hiring!
Saturday, September 15, 12
Slide 4
Slide 4 text
“Threads on Rails!”
Saturday, September 15, 12
Slide 5
Slide 5 text
Sidekiq
What if 1 Sidekiq process could
do the work of 20 Resque processes?
http://mperham.github.com/sidekiq/
Saturday, September 15, 12
Slide 6
Slide 6 text
OOP + Actor Model
Saturday, September 15, 12
Slide 7
Slide 7 text
“I thought of objects being like biological
cells and/or individual computers on a
network, only able to communicate with
messages”
- Alan Kay, creator of Smalltalk, on the meaning of "object
oriented programming"
Saturday, September 15, 12
Slide 8
Slide 8 text
Active Objects
Based on the Actor Model
Saturday, September 15, 12
Slide 9
Slide 9 text
Saturday, September 15, 12
Slide 10
Slide 10 text
Saturday, September 15, 12
Slide 11
Slide 11 text
Actor Model
•Actors are computational entities that
can receive messages
•Each actor has a unique address
•If you know an actor’s address, you can
send it messages
•Actors can create new actors
Saturday, September 15, 12
Slide 12
Slide 12 text
I’m not the first
to do Actor Model + OOP
Saturday, September 15, 12
Slide 13
Slide 13 text
Saturday, September 15, 12
Slide 14
Slide 14 text
Forgotten approach
to concurrency?
Saturday, September 15, 12
Slide 15
Slide 15 text
Example
Saturday, September 15, 12
Slide 16
Slide 16 text
require 'celluloid'
class Launcher
include Celluloid
def launch
3.downto(1) do |count|
puts "#{count}..."
sleep 1
end
puts "BLASTOFF!"
end
end
Saturday, September 15, 12
Slide 17
Slide 17 text
require 'celluloid'
class Launcher
include Celluloid
def launch
3.downto(1) do |count|
puts "#{count}..."
sleep 1
end
puts "BLASTOFF!"
end
end
Saturday, September 15, 12
Slide 18
Slide 18 text
>> launcher = Launcher.new
=> #
Saturday, September 15, 12
Beware the GIL
•YARV can do parallel I/O in threads
•...but NOT parallel computation (e.g. fib)
•JRuby and Rubinius will light up all your
cores :)
Saturday, September 15, 12