Tìm hiểu mã nguồn brynet - Thành phần mạng
1. EventLoop.hpp
Lớp này đóng vai trò theo dõi socket và lập lịch tác vụ. Dưới đây là các biến thành viên chính:
// Mảng chứa sự kiện từ epoll_wait
std::vector danhSachSuKien;
// File descriptor của epoll
int epollFd;
// Kênh đánh thức epoll_wait
std::unique_ptr kenhDanhThuc;
// Trạng thái luồng
std::atomic_bool dangChoi;
std::atomic_bool daDa ...
Đăng vào ngày 7 tháng 7 lúc 17:39
Cơ chế vòng lặp sự kiện JavaScript và các câu hỏi phỏng vấn
JavaScript là ngôn ngữ đơn luồng, nghĩa là chỉ có một luồng thực thi chính. Mọi lệnh đều được xử lý tuần tự. Tuy nhiên, nếu một thao tác mất nhiều thời gian như setTimeout hay gọi Ajax, nó sẽ làm tắc nghẽn các tác vụ tiếp theo, khiến chương trình chạy chậm. Để khắc phục điều này, JavaScript có một cơ chế xử lý đặc biệt với nhiều "kênh" khác nha ...
Đăng vào ngày 4 tháng 7 lúc 22:33