Apakah Ruby on Rails multithread?
Apakah Ruby on Rails multithread?

Video: Apakah Ruby on Rails multithread?

Video: Apakah Ruby on Rails multithread?
Video: Why you Should NOT use Ruby on Rails 2024, Mungkin
Anonim

Penumpang Phusion menggunakan konkurensi berbasis proses untuk menangani beberapa permintaan secara bersamaan, jadi, sebenarnya, tidak " multithreaded , " tetapi masih bersamaan. Pembicaraan ini dari Rubi MidWest 2011 memiliki beberapa pemikiran bagus untuk mendapatkan Ruby on Rails multithread pergi.

Dengan cara ini, apakah Ruby mendukung multithreading?

A multithreaded program memiliki lebih dari satu utas eksekusi. Rubi membuatnya mudah untuk menulis program multi-utas dengan kelas Thread. Rubi utas adalah cara yang ringan dan efisien untuk mencapai konkurensi dalam kode Anda.

Kedua, apakah Ruby bersamaan? Secara khusus, Ruby konkurensi adalah saat dua tugas dapat dimulai, dijalankan, dan diselesaikan dalam periode waktu yang tumpang tindih. Namun, itu tidak berarti bahwa keduanya akan berjalan pada saat yang sama (mis., Banyak utas pada mesin inti tunggal).

Demikian juga, apakah Ruby berulir tunggal?

Jawaban singkatnya adalah ya, mereka berulir tunggal . Jawaban panjangnya adalah itu tergantung. JRuby adalah multithreaded dan dapat dijalankan di Tomcat seperti kode java lainnya. MRI (standar rubi ) dan Python keduanya memiliki GIL (Global Interpreter Lock) dan karenanya berulir tunggal.

Apakah Ruby punya Gil?

MRI memiliki sesuatu yang disebut kunci penerjemah global ( GILA ). Ini adalah kunci di sekitar eksekusi Rubi kode. Ini berarti bahwa dalam konteks multi-utas, hanya satu utas yang dapat dieksekusi Rubi kode pada satu waktu. NS GILA ada untuk melindungi Rubi internal dari kondisi balapan yang dapat merusak data.

Direkomendasikan: