Tôi đang cố gắng để có được một xử lý về cách thực hiện luồng trong một ứng dụng Java có sử dụng Spring để quản lý giao dịch. Tôi đã tìm thấy phần TaskExecutor trong Spring documentation, và ThreadPoolTaskExecutor trông giống như nó sẽ phù hợp với nhu cầu của tôi;Bất kỳ luồng Spring tốt nào với một ví dụ TaskExecutor?
ThreadPoolTaskExecutor
thi này chỉ có thể được sử dụng trong một môi trường Java 5 mà còn là một trong những phổ biến nhất được sử dụng trong môi trường đó. Nó cho thấy các thuộc tính bean để cấu hình một java.util.concurrent.ThreadPoolExecutor và kết thúc nó trong một TaskExecutor. Nếu bạn cần một cái gì đó nâng cao như một ScheduledThreadPoolExecutor, bạn nên sử dụng ConcurrentTaskExecutor thay thế.
Tuy nhiên tôi không biết cách sử dụng nó. Tôi đã tìm kiếm các ví dụ tốt cho một lúc bây giờ mà không có may mắn. Nếu bất cứ ai có thể giúp tôi, tôi sẽ đánh giá cao nó.
Tôi nghĩ rằng vấn đề của tôi là suy nghĩ này là phức tạp hơn sau đó nó được. Tôi thấy http://docs.huihoo.com/javadoc/spring/2.0/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.html#createQueue(int) và tôi giả định ThreadPoolTaskExecutor có một cơ chế xếp hàng được xây dựng sẵn. –
Có lẽ tôi đã không nhầm, queueCapacity là gì? Tôi vẫn cảm thấy như tôi đang thiếu cái gì đó ở đây. –
Nếu dung lượng hàng đợi lớn hơn 0, nó tạo ra một hàng đợi, để các tác vụ được kích hoạt bởi một TaskExecutor cụ thể có thể đợi cho đến khi một luồng có sẵn từ nhóm. Dung lượng cho biết có bao nhiêu khoảng trống trong hàng đợi. Nếu hàng đợi lấp đầy, người thực thi sẽ chặn (tức là phương thức thực thi sẽ không trở lại cho đến khi một khoảng trống mở ra). Đây là tài liệu trên hàng đợi: http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/LinkedBlockingQueue.html –