Số lượng tác vụ (chủ đề) được gửi cũng không lớn trong kịch bản thử nghiệm này.Tại sao Executors.newCachedThreadPool ném java.util.concurrent.RejectedExecutionException trong khi gửi
Trả lời
Bạn sẽ cần phải cung cấp mẫu mã như thế nào bạn nhanh chóng và gọi submit
trên hồ bơi (IP nên một tổ chức phi Vấn đề ở đây là chúng ta không cần chi tiết của ruột của Callable
lớp hoặc bất cứ điều gì giống như của bạn cái đó).
Dựa trên thông tin bạn đã cung cấp, bạn gần như chắc chắn sẽ tắt dịch vụ thực thi ở đâu đó trước khi gửi cuộc gọi đến nó. Kiểm tra xem bạn có thực hiện bất kỳ cuộc gọi nào tới shutdown
hoặc shutdownNow
và nếu như vậy đảm bảo rằng bạn không thêm công việc sau thời điểm này.
Ngoài ra, bạn có thể muốn đăng ký triển khai của riêng mình java.util.concurrent.RejectedExecutionHandler
để hỗ trợ gỡ lỗi; thông điệp rejectedExecution của nó sẽ được gọi bất cứ khi nào người thi hành không thể chấp nhận một nhiệm vụ, vì vậy bạn có thể đặt một số logic kiểm tra trạng thái thô sơ ở đó để giúp bạn tìm ra nguyên nhân.
Bạn đã đúng; Tôi tìm thấy mã đã được tắt hồ bơi thực hiện; cảm ơn –
Tôi không thấy bất cứ nơi nào trong yêu cầu của các phương pháp Executors.newCachedThreadPool()
trong đó RejectedExecutionException
bị ném. Chỉ có ba trường hợp nó dường như được ném trong Java 6:
- khi gọi
execute()
trênThreadPoolExecutor
và kích thước hồ bơi tối đa đã đạt tới. - khi gọi
execute()
trên sốThreadPoolExecutor
cùng lúc vớishutdownNow
và về cơ bản đã bị mất cuộc đua với cuộc gọishutdownNow
. - khi cố gắng lên lịch thực hiện một lần chạy trong một
ScheduledThreadPoolExecutor
sau khi người thực hiện đã bị tắt.
+1 để liệt kê tất cả các trường hợp có thể xảy ra –
- 1. java.util.Prefs ném BackingStoreException - Tại sao?
- 2. Tại sao System.Web.Hosting.ApplicationHost.CreateApplicationHost ném System.IO.FileNotFoundException?
- 3. ImageSourceConverter ném NullReferenceException ... tại sao?
- 4. Tại sao MemoryStream.GetBuffer() luôn ném?
- 5. Tại sao Observable.Generate() ném System.StackOverflowException?
- 6. Gửi email khi ngoại lệ bị ném
- 7. Tại sao NHibernate ném "StaleObjectStateException"?
- 8. Tại sao StreamReader.ReadLine ném OutOfMemoryException?
- 9. Tại sao Iterator.next() ném ConcurrentModificationException
- 10. Tại sao Eclipse 3.2 ném lỗi khi khởi động
- 11. Tại sao OutOfMemoryException bị ném trong khi sử dụng PLINQ Take()?
- 12. Tại sao FileNotFoundException được ném trong khi nó tồn tại trên linux
- 13. Tại sao PyGILState_Release ném lỗi Python Fatal
- 14. Tại sao removeOnGlobalLayoutListener ném một NoSuchMethodError?
- 15. Tại sao List.remove (int) lại ném java.lang.UnsupportedOperationException?
- 16. Tại sao CLR lại ném ThreadAbortException?
- 17. Tại sao dh_usrlocal ném lỗi xây dựng?
- 18. Tại sao `Pattern.compile (" (?: \ U00e9) ", Pattern.CANON_EQ)` ném?
- 19. Tại sao BitmapSource.Create lại ném một ArgumentException?
- 20. Tại sao XmlSerializer ném một InvalidOperationException?
- 21. Tại sao phải chờ SIFS trước khi gửi ACK?
- 22. Tại sao '{' ném một NullReferenceException trong một phương thức tĩnh?
- 23. Tại sao "ném" và "ném cũ" trong một khối catch hoạt động theo cùng một cách?
- 24. IE9 ném ngoại lệ khi tải tập lệnh trong khung nội tuyến. Tại sao?
- 25. Tại sao công việc đúc ngầm ẩn trong khi đúc phản chiếu ném ngoại lệ?
- 26. Tại sao tôi không thể ném ngoại lệ trong khi sử dụng toán tử bậc ba
- 27. Tại sao getCanonicalPath ném ngoại lệ đã kiểm tra trong khi getAbsolutePath thì không?
- 28. urllib2.urlopen() vs urllib.urlopen() - urllib2 ném 404 trong khi urllib hoạt động! TẠI SAO?
- 29. Tại sao [-1] mới tạo ra segfault, trong khi [-2] mới ném bad_alloc?
- 30. Tại sao bên ngoài "cuối cùng" không được thực hiện khi bên trong "bắt" ném?
Bạn có thể tinh chỉnh câu hỏi của mình không? Ví dụ. thêm một testcase ngắn. – Kutzi
Xin lỗi, không có nhiều mã tôi có thể chia sẻ vì lý do IP. Trong vỏ hạt, tôi đang gọi gửi với các loại có thể gọi là. Tôi đang tìm các kịch bản tiềm năng mà điều này có thể xảy ra. –
Bạn đang nói rằng không có kịch bản cụ thể mà bạn đang xem xét, nhưng thay vào đó muốn biết về các kịch bản giả định, nơi ngoại lệ này có thể được ném ra? nếu có, bạn nên viết lại câu hỏi từ 'Tại sao ...' thành 'Khi nào ...' – akf