Ruby on Rails có đa luồng không?
Ruby on Rails có đa luồng không?

Video: Ruby on Rails có đa luồng không?

Video: Ruby on Rails có đa luồng không?
Video: Ruby on Rails Liệu Có Nên Học ? 2024, Tháng mười một
Anonim

Phusion Passenger sử dụng đồng thời dựa trên quy trình để xử lý một số yêu cầu đồng thời, vì vậy, nói đúng ra, không phải là " đa luồng , "nhưng vẫn diễn ra đồng thời. Cuộc nói chuyện này từ Ruby MidWest 2011 có một số suy nghĩ tốt về việc Ruby on Rails đa luồng đang đi.

Theo cách này, Ruby có hỗ trợ đa luồng không?

MỘT đa luồng chương trình có nhiều hơn một luồng thực thi. Ruby giúp bạn dễ dàng viết các chương trình đa luồng với lớp Thread. Ruby luồng là một cách nhẹ và hiệu quả để đạt được sự đồng thời trong mã của bạn.

Thứ hai, Ruby có đồng thời không? Đặc biệt, Đồng tiền ruby là khi hai tác vụ có thể bắt đầu, chạy và hoàn thành trong các khoảng thời gian trùng nhau. Tuy nhiên, điều đó không nhất thiết có nghĩa là cả hai sẽ chạy ngay lập tức (ví dụ: nhiều luồng trên một máy lõi đơn).

Tương tự như vậy, Ruby có phải là một luồng không?

Câu trả lời ngắn gọn là có, họ luồng đơn . Câu trả lời dài là nó phụ thuộc. JRuby là đa luồng và có thể chạy trong tomcat như các mã java khác. MRI (mặc định hồng ngọc ) và Python đều có GIL (Global Interpreter Lock) và do đó luồng đơn.

Ruby có Gil không?

MRI có một cái gì đó được gọi là khóa thông dịch viên toàn cục ( GIL ). Đó là một khóa xung quanh việc thực hiện Ruby mã số. Điều này có nghĩa là trong ngữ cảnh đa luồng, chỉ một luồng có thể thực thi Ruby mã tại bất kỳ thời điểm nào. Các GIL tồn tại để bảo vệ Ruby nội bộ từ các điều kiện chủng tộc có thể làm hỏng dữ liệu.

Đề xuất: