2010-05-10 26 views
5

Tôi đã tự hỏi đó sẽ là phương pháp hiệu quả nhất để thực hiện một số loại tác vụ nền trong java (tôi đoán đó sẽ là một số loại Chủ đề không chặn). Để chính xác hơn - Tôi có một số mã java và sau đó tại một số điểm tôi cần phải thực hiện một hoạt động chạy dài. Những gì tôi muốn làm là để thực hiện hoạt động đó trong nền để phần còn lại của chương trình có thể tiếp tục thực hiện và khi công việc đó được hoàn thành, chỉ cần cập nhật một số đối tượng cụ thể đó. Thay đổi này sau đó sẽ được phát hiện bởi các thành phần khác.tác vụ nền java

Trả lời

2
+1

Vâng, đây là những gì tôi đang tìm kiếm, cụ thể hơn là Executors, .. Cảm ơn. – markovuksanovic

+0

Bạn có thể đưa ra câu trả lời của riêng bạn về những người thực thi. Tôi sắp hỏi một câu hỏi rất giống nhau. Tôi nghĩ rằng các công tố viên nên được đề cập như một câu trả lời cụ thể. Tôi sẽ cho nó một upvote. Tôi không muốn đặt câu trả lời vào điểm ăn cắp. Đặc biệt khi JEE không khuyến khích sinh sản các Chủ đề mới. – Wes

-1

ý tưởng Naïve: bạn có thể có thể tạo chủ đề, cung cấp cho nó một ưu tiên thấp, và thực hiện một vòng lặp của:

  • làm một chút công việc
  • sử dụng năng suất hoặc ngủ để cho chủ đề khác làm việc trong song song

điều đó sẽ phụ thuộc vào những gì bạn thực sự muốn làm trong chủ đề của bạn

6

bạn muốn thực hiện một chủ đề mới; tùy thuộc vào cách dài phương pháp này cần phải được, bạn có thể làm cho nó inline:

// some code 
new Thread(new Runnable() { 
    @Override public void run() { 
     // do stuff in this thread 
    } 
}).start(); 

Hoặc chỉ cần thực hiện một lớp mới:

public class MyWorker extends Thread { 
    public void run() { 
     // do stuff in this thread 
    } 
} 

// some code 
new MyWorker().start(); 
+0

Ở đây không thể thực hiện được rằng chuỗi chạy dài đánh cắp CPU và không cho phép các luồng khác chạy? – phtrivier

+0

Tạo Chủ đề mới không được khuyến khích trong JEE. – Wes

-1

Vâng, bạn sẽ muốn quay hoạt động tắt theo chủ đề riêng của nó. Thêm chủ đề mới có thể hơi nguy hiểm nếu bạn không cẩn thận và biết điều đó có nghĩa là gì và tài nguyên sẽ tương tác như thế nào. Dưới đây là một số tốt introduction to threads để giúp bạn bắt đầu.

0

Make a thread. Đánh dấu chủ đề này là Daemon. JVM thoát khi luồng chỉ chạy là tất cả các chuỗi daemon.

Các vấn đề liên quan