Home » Ruby » Cara menggunakan fork di ruby

Cara menggunakan fork di ruby

Ditulis oleh Admin Anakbit · 17 February 2020

Forking adalah sebuah istilah di dalam UNIX yang memiliki arti bagaimana membuat sebuah proses menggandakan dirinya sendiri. Dikutip dari Wikipedia: A fork in a multithreading environment means that a thread of execution is duplicated, creating a child thread from the parent thread..

1. Cara membuat fork di ruby

puts "Baris petama sebelum fork (pid #{Process.pid})"
puts fork
puts "Baris kedua setelah fork (pid #{Process.pid})"

Output dari kode diatas adalah (di run tiap line):

Baris pertama sebelum fork (pid 10207) 
10209
Baris kedua setelah fork (pid 10207)
Baris kedua setelah fork (pid 10209)

Baris pertama sudah jelas bahwa 10207 adalah PID dari process yang sedang berjalan (parent process). Yang menarik ada di line kedua, yaitu 10209, ini adalah PID hasil kembalian dari fork, dan menjadi PID dari child process. Lalu ada dua baris berikutnya, yakni yang pertama di eksekusi oleh parent (PID = 10207), sementara satunya lagi dieksekusi oleh child (PID = 10209)

2. Fork dengan blocks

Seringkali, kode yang ingin dijalankan di proses terpisah itu di kirim sebagai sebuah block kedalam method fork, seperti berikut:

puts "Kode yang mau di-fork bisa juga ada di dalam block pid: #{Process.pid}"
fork do
  puts "Hai, aku dari dalam fork pid: #{Process.pid}"
end
puts "Proses utama (mungkin) duluan nih: #{Process.pid}"

Ketika di-run, outputnya adalah 3 baris dengan urutan yang kadang berbeda, namu kemungkinan besar seperti berikut:

Kode yang mau di-fork bisa juga ada di dalam block pid: 10161
Proses utama (mungkin) duluan nih: 10161
Hai, aku dari dalam fork pid: 10163
Share:
Admin Anakbit