Created
February 17, 2016 06:23
-
-
Save goyusia/fd23ad34538802b003ef to your computer and use it in GitHub Desktop.
buggy ruby parallel example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env ruby | |
| require "parallel" | |
| class User | |
| attr_accessor :name | |
| def initialize(name) | |
| @name = name | |
| end | |
| end | |
| def create_users | |
| [ | |
| User.new("foo"), | |
| User.new("bar"), | |
| ] | |
| end | |
| def print_users(users) | |
| users.each { |u| puts u.name } | |
| end | |
| def main_simple [0/120] | |
| users = create_users | |
| users.each do |user| | |
| user.name = user.name + "!" | |
| end | |
| puts "## simple" | |
| print_users users | |
| end | |
| def main_parallel | |
| users = create_users | |
| Parallel.each(users) do |user| | |
| user.name = user.name + "!" | |
| end | |
| puts "## parallel" | |
| print_users users | |
| end | |
| def main_parallel_thread | |
| users = create_users | |
| Parallel.each(users, in_threads: 2) do |user| | |
| user.name = user.name + "!" | |
| end | |
| puts "## parallel - threads" | |
| print_users users | |
| end | |
| def main_parallel_processes | |
| users = create_users | |
| Parallel.each(users, in_processes: 2) do |user| | |
| user.name = user.name + "!" | |
| end | |
| puts "## parallel - processes" | |
| print_users users | |
| end | |
| main_simple | |
| main_parallel | |
| main_parallel_thread | |
| main_parallel_processes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment