Có ai có kinh nghiệm về bất đồng bộ trong java, có thể chỉ cho mình về nó với ạ?
Thắc mắc về Async trong java
Cậu gặp vấn đề async trong Java thế Thắng?
Trong spring boot, thêm @Async trc method là nó sẽ bất đồng bộ, ở đây là tạo 1 thread riêng biệt -> khi luồng chạy nó sẽ k bị block mà complete luôn r sau đó chạy thằng đc @Async đúng k ạ?
Sorry, tớ không hiểu ý cậu lắm. Tớ cần hỏi thêm mấy thuật ngữ và phase mà cậu sử dụng:
- “Luồng chạy không bị block mà complete” nghĩa là gì vậy cậu? Tớ không rõ cái gì complete, method được tag
@Async
, hay thread mới?
Cậu có thể chỉ cụ thể được không? - “Sau đó, chạy thằng được @Async” là chạy method được tag với annotation
@Async
phải không? Và cái gì chạy “thằng” đó?
Cậu có thể tham khảo article này, nó giải thích khá straight forward về ý nghĩa, cách dùng annotation @Async
: https://www.baeldung.com/spring-async
Tóm tắt lại thì method được tag @Async
(được gọi là callee), khi được gọi từ 1 process (được gọi là caller) sẽ được thực hiện ở 1 thread mới. Caller sẽ không chờ callee được thực thi xong rồi mới thực hiện tiếp (việc chờ rồi mới thực thi tiếp này gọi là đồng bộ - synchronize), mà cứ tiếp tục công việc của caller.
Lúc đó, callee được chạy bất đồng bộ.
cám ơn bạn, mình đã hiểu r