3 điểm bởi GN⁺ 2023-08-26 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Bài viết thảo luận về trải nghiệm của tác giả với ngôn ngữ lập trình Elixir, tập trung vào các tính năng đồng thời và song song.
  • Tác giả đã sử dụng Elixir làm ngôn ngữ lập trình chính trong 5-6 năm qua, đồng thời ghi nhận hiệu năng của nó và số lượng nhược điểm rất ít.
  • Tác giả so sánh mô hình đồng thời của Elixir với PHP và Python, cho rằng mô hình đồng thời của PHP phụ thuộc vào máy chủ web, còn Python gặp khó khăn với đồng thời do Global Interpreter Lock (GIL).
  • Elixir được xây dựng trên Erlang và máy ảo Erlang (BEAM), vốn được thiết kế để chạy một số lượng lớn tiến trình nhẹ, tạo nền tảng cho tính đồng thời và song song.
  • Khi khởi động, BEAM tạo các thread cho scheduler, mặc định xử lý việc lập lịch tiến trình theo tỷ lệ một scheduler cho mỗi lõi CPU khả dụng.
  • Tác giả giải thích rằng đặc tính lập trình hàm bất biến của Elixir và Erlang là lựa chọn thực dụng để đạt được mức độ đồng thời và song song cao.
  • Các tiến trình trong Elixir không chia sẻ trạng thái và chỉ có thể giao tiếp bất đồng bộ thông qua truyền thông điệp, nhờ đó bảo đảm thực thi đồng thời và song song an toàn.
  • Tác giả lưu ý rằng khi viết mã bằng Elixir, phần lớn các yêu cầu web diễn ra trong một tiến trình đơn lẻ, nên thường không cần quá lo lắng về các nguyên tắc nền tảng này.
  • Elixir cung cấp cơ chế async/await cho các tác vụ đồng thời, được triển khai trong mô-đun Task, và có hàm Task.async_stream để chạy Task cho từng phần tử có thể liệt kê.
  • Tác giả kết luận rằng các lựa chọn tuyệt vời về đồng thời và song song trong Elixir và Erlang không phải là thứ được nghĩ ra sau này, mà được xây dựng vào nền tảng của runtime, vì vậy tính đồng thời trên BEAM không hề nguy hiểm hay khó khăn.

Chưa có bình luận nào.

Chưa có bình luận nào.