Trong Java có cách nào để đặt mức độ ưu tiên cho chuỗi sẽ gọi phương thức doInBackground()
của đối tượng SwingWorker
không?Có cách nào để đặt mức độ ưu tiên của chuỗi nền được sử dụng bởi một SwingWorker không?
Trong API chủ đề, có phương thức setPriority()
. Phương thức SwingWorker.execute()
lập kế hoạch swingworker để thực hiện trên một chuỗi công nhân. Tôi muốn có quyền truy cập vào chuỗi công nhân đó để đặt mức độ ưu tiên của nó.
Từ sự hiểu biết của tôi, chuỗi công nhân này đến từ một hồ sơ chuỗi công nhân mặc định. Liệu cách duy nhất để xử lý việc này là sử dụng người thực thi của riêng tôi?
Trừ khi bạn đang sử dụng gần 100% của tất cả các CPU của bạn, thiết lập các ưu tiên có thể không thực hiện bất kỳ sự khác biệt. Nếu bạn đang sử dụng tất cả các CPU của bạn, ưu tiên chỉ là một gợi ý mà JVM hoặc hệ điều hành là miễn phí để bỏ qua. IMHO Nó sẽ không giải quyết vấn đề của bạn. –
Ứng dụng này nhắm mục tiêu cụ thể Windows và JVM là Oracle JVM chuẩn. Từ câu hỏi tràn ngăn xếp khác này, nó tạo ra một số khác biệt trong trường hợp này: http://stackoverflow.com/questions/297804/thread-api-priority-translation-to-os-thread-priority – Clinton
Nó tạo sự khác biệt cho gợi ý cho hệ điều hành. Cho dù nó tạo ra bất kỳ sự khác biệt nào cả khi bạn không sử dụng tất cả cpu, là câu hỏi tôi có. AFAIK, nếu bạn có cpu dự phòng mỗi thread có thể chạy sẽ chạy bất kể ưu tiên. Nó chỉ quan trọng khi hệ điều hành phải đưa ra lựa chọn ưu tiên quan trọng. –