Sự khác nhau giữa Process.fork và các phương thức Process.spawn mới trong Ruby 1.9.2 là gì và tốt hơn là chạy chương trình khác trong một tiến trình con ? Theo như tôi hiểu Process.fork chấp nhận khối mã và Process.spawn mất một lệnh hệ thống cộng với một số tham số khác. Khi nào tôi nên sử dụng cái này thay vì cái kia?Sự khác nhau giữa Process.fork và Process.spawn trong Ruby 1.9.2
Trả lời
sự khác biệt giữa Process.fork và các phương pháp Process.spawn mới trong Ruby 1.9.2
Process.fork
là gì cho phép bạn chạy mã ruby trong quá trình khác. Process.spawn
cho phép bạn chạy chương trình khác trong quy trình khác. Về cơ bản, Process.spawn
giống như sử dụng Process.fork
và sau đó gọi exec
trong quá trình chia hai, ngoại trừ việc nó cung cấp cho bạn nhiều tùy chọn hơn.
và cái nào tốt hơn để chạy chương trình khác trong quy trình con?
Nếu bạn cần khả năng tương thích ngược, sử dụng fork
+ exec
như spawn
không có sẵn trong 1.8. Nếu không, hãy sử dụng spawn
vì chạy một chương trình khác trong một tiến trình con là chính xác những gì spawn
được tạo cho.
Theo tôi hiểu Process.fork chấp nhận khối mã và Process.spawn nhận lệnh hệ thống cùng với một số tham số khác.
Chính xác.
Khi nào tôi nên sử dụng cái này thay vì cái kia?
Sử dụng fork
nếu bạn cần chạy mã ruby tùy ý trong một quy trình riêng biệt (bạn không thể làm điều đó với spawn
). Sử dụng spawn
nếu bạn cần gọi một ứng dụng trong một tiến trình con.
Tôi tin Process.Fork forks quá trình hiện tại và Process.Spawn sinh ra một quy trình mới. Chúng khá khác nhau. Bạn có muốn một chủ đề mới hoặc một quy trình mới không?
Tôi cần một quy trình mới và hiện đang sử dụng Process.fork (để mã hóa video nền). Tôi vừa tìm ra phương thức Process.spawn mới trong Ruby 1.9 và tò mò về sự khác biệt và nếu tôi có thể hưởng lợi từ nó bằng cách nào đó. – Vincent