Nếu em có 3 API nhưng chỉ có 2 API async, 1 API là sync. Như vậy hàm này là sync đúng k ạ. Vì sao lại vậy ạ
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Có rất nhiều cách hiểu về async, vậy anh em mình thống nhất async như sau nhé:
1. Là gọi từ 1 luồng và nhận kết quả ở luồng khác, nghĩa là không làm block luồng hiện tại đang gọi
2. Không làm gia tăng số lượng thread trong quá trình gọi
Đúng vậy em ạ, chỉ cần 1 hàm sync thì toàn bộ các hàm async khác sẽ phải chờ kết quả của hàm này em ạ, hãy cùng lấy 1 ví dụ, em sẽ gọi 3 APIs cho chức năng Order thế này:
1. Gọi kafka để push thông tin order sang hệ thống lưu đơn hàng: API này là async, vì nó gọi sang kafka, mọi việc xử lý sẽ do consumer xử lý vậy nó sẽ không làm block cái luồng gọi hiện tại
2. Gọi sang hệ thống mail để gửi mail thông báo đơn hàng cho user: API này cũng là async, việc gửi mail sẽ do mail server phụ trách, nên cũng không làm block luồng hiện tại
3. Gọi sang hệ thống thanh toán để trừ tiền: API là sync, vì nó cần phải lấy được số dư sau khi trừ tiền của user, và dựa vào kết quả nó sẽ quyết định rằng đơn hàng sẽ thanh toán thành công hay không để làm các bước tiếp theo. API này sẽ làm block luồng hiện tại
Như vậy dù chỉ có 1 API sync thì nó cũng làm block luồng hiện tại và theo định nghĩa ở trên thì nó là sync