Skip to content

Instantly share code, notes, and snippets.

@morygonzalez
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save morygonzalez/0b9d911a001d0c8c94e8 to your computer and use it in GitHub Desktop.
Save morygonzalez/0b9d911a001d0c8c94e8 to your computer and use it in GitHub Desktop.
thread_started_at = Time.now
thread_finished_at = nil
for i in 1..4 do
Thread.start(i) do |t|
puts "started thread #{t}"
sleep 1
puts "finished thread #{t}"
thread_finished_at = Time.now if t == 4
end
end
loop_started_at = Time.now
for i in 1..4 do
puts "started loop #{i}"
sleep 1
puts "finished loop #{i}"
end
loop_finished_at = Time.now
puts "Thread finished in #{thread_finished_at - thread_started_at}"
puts "Loop finished in #{loop_finished_at - loop_started_at}"
[23] pry(2.1.5-p273)> edit
started thread 4
started thread 2
started thread 3
started loop 1
started thread 1
finished thread 4finished thread 2
finished loop 1
started loop 2
finished thread 3
finished thread 1
finished loop 2
started loop 3
finished loop 3
started loop 4
finished loop 4
Thread finished in 1.001928
Loop finished in 4.003844
@morygonzalez
Copy link
Author

SES のメール送信処理とかで時間がかかるやつは CPU に待ち時間が発生しているのでスレッドにする方がよさそう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment