01/10/2018, 17:16
Hỏi về đa luồng: synchronized để đồng bộ hoá giữa các luồng khi sử dụng
em đang tìm hiểu về đa luồng trong java , em có 1 thắc mắc ợ
ví dụ : em có 1 khối lệnh và em dùng từ khóa synchronized để giúp đồng bộ hóa giữa các luồng khi sử dụng khối lệnh này
- ta có thể biết chính xác luồng nào đang sở hữu , hay sử dụng khối lệnh này không
- theo lý thuyết thì nếu luồng 1 đang sử dụng khối lệnh và bị die hoặc treo thì các luồng khác muốn sử dụng khối lệnh này cũng bị treo theo vậy trong trường hợp này ta có cách nào để set thời gian tối đa mà 1 luồng có thể sở hữu khối lệnh này không , kiểu như mình chỉ giới hạn thời gian sử dụng khối lệnh của 1 luồng nếu hết thời gian sẽ tự động trả khóa lại để luồng khác dùng …
Bài liên quan
https://gpcoder.com/3548-huong-dan-tao-va-su-dung-threadpool-trong-java/#Custom_Thread_Pool_Executor
Với java 8 bạn có thể dễ dàng xử lý việc này hơn thông qua CompletableFuture.get(timeout).
https://gpcoder.com/4064-lap-trinh-da-luong-voi-completablefuture-trong-java-8/
ok thanks bạn mình sẽ thử…