Và cho em hỏi thêm là MultiThreading có phải là 1 thế mạnh của Java so với các ngôn ngữ khác không ạ?
2 Answers
Để biết được MultiThreading với java web được sử dụng thế nào, em hãy tải visualvm về nhé, em sẽ xem được kiểu thế này:
Em có thể thấy một loạt các thread với các trạng thái xanh đỏ tím vàng, đây là các thread làm nhiệm vụ xử lý I/O và các thread dành cho xử lý request và response của em, thông thường em sẽ không cần phải tạo thêm các thread nữa.
Số thread trong một server là hữu hạn, nên nếu việc xử lý request quá chậm sẽ dẫn đến hết thread và server của em sẽ bị treo nhé, đây người ta gọi là DDoS
Multi-Threading đương nhiên là một thế mạnh của java so với rất nhiều ngôn ngữ khác rồi em ạ. Vì sao vậy? Các framework khác như nodejs, dart, ... đều cố gắng đưa tất cả về single thread bằng cách giấu đi việc xử lý thread phức tạp ở dưới, để dev không cần lo về lock, synchronize các thứ. Tuy nhiên là lại phải đẻ ra các từ khoá async, await và các hàm callback để dev không làm block cái main thread. Chính vì vậy mà dev sẽ bị cái vòng kim cô async siết chặt, làm giảm khả năng sáng tạo với nhiều mẫu lập trình khác nhau. Còn với Java hay các ngôn ngữ thuần tuý multithread như C
, C/C++ với các từ khoá volatile, synchronize, lock sẽ cho em khả năng sáng tạo vô tận nhé
-
2
-
0