Avatar
0
monkey Enlightened
monkey Enlightened
Tác dụng cụ thể của MultiThreading trong các ứng dụng Java web cụ thể là như thế nào?
Xin chào mọi người.Trong quá trình tự tìm hiểu thì em có thấy mọi người nói là học Java là chắc chắn phải biết về MultiThreading nên em cũng có tìm hiêu 1 tí về nó.Nhưng bản thân em cũng đã tiếp xúc với Java web đã được 1 thời gian rồi mà em vẫn chưa biết tác dụng cụ thể của MultiThreading trong các ứng dụng Java web cụ thể là như thế nào ạ?

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 ạ?

  • Answer
java multithreading
Remain: 5
2 Answers
Avatar
tvd12 Enlightened
tvd12 Enlightened
Đây cũng chính là một trong những nhược điểm của việc sử dụng thư viện em ạ, đó là không biết được những thứ hay ho ở dưới.

Để 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
  • Reply
Thanks anh nhiều, nhờ comment này em mới biết tool như visualVM. Mà anh cho em hỏi là nodejs nó single thread nhưng asyn thì bên dứoi bản chất async đó nó vẫn tạo mới các thread để giải quyết các tác vụ async à anh?  –  hovanvydut 1628411269000
Đúng rồi em ạ, em tham khảo bài viết này nhé: https://tvd12.com/asynchronous/  –  monkey 1628411598000
Avatar
dohai2105 Enlightened
dohai2105 Enlightened
Trước dự án mình có làm chức năng submit form xong tạo 3 4 file xong trả result cho người dùng, làm bình thương tuần tự tạo file kết quả trả hơi lâu, sau dùng nhiều thread tạo file 1 lúc thì kết quả ra nhanh hơn cỡ 2 lần.
  • 0
  • Reply