Cách dễ nhất để có một đoạn mã Java được lên lịch ở một tốc độ nhất định là gì?Java Chủ đề mỗi X giây
Trả lời
Trong Java 5 + với một ScheduledExecutorService
:
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// do stuff
}
}, 0, 5, TimeUnit.SECONDS);
Các phương pháp trên được ưa chuộng. Trước Java 5 bạn sử dụng Timer
và TimerTask
:
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// do staff
}
}, 0, 5000);
Bằng cách sử dụng ScheduledExecutorService.
Hãy xem Executors.newScheduledThreadPool
. Nó sẽ cho phép bạn tạo ra một ScheduledExecutorService
cho phép bạn gửi Runnable
s để được thực thi theo các khoảng thời gian đều đặn.
while (true) {
thread.sleep(1000)
method();
}
Trong nhiều trường hợp sẽ có lựa chọn thay thế tốt hơn. Nhưng đây là cách dễ nhất để triển khai thực hiện thường xuyên phương thức của bạn() tại một khoảng thời gian 1000ms + n (trong đó n là khoảng thời gian thực hiện phương thức thực hiện())
Tất nhiên thay vì 1000, bạn có thể đặt bất kỳ giá trị mili giây nào bạn mong muốn. Nó cũng có thể là một ý tưởng để thực hiện vòng lặp while trên một cờ mà một điều khiển luồng khác; để có một cách để ngừng thực hiện vòng lặp mà không phải giết chương trình.
gần như - nó sẽ có ít nhất 1000. Nó phụ thuộc khi bộ lập lịch trình chủ đề quyết định bắt đầu chạy lại chuỗi. Nó sẽ là 1000 + a + n (trong đó a là thời gian để trình lập lịch biểu kích hoạt lại chuỗi) – RNJ
Sử dụng mã dưới đây:
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
public void run() {
// do your work
}
}, 0, 60*(1000*1));
- 1. Tải lại JPanel mỗi X giây (với chủ đề?)
- 2. Animate SVG yếu tố mỗi x giây
- 3. python Tornado websockets cách gửi tin nhắn mỗi X giây?
- 4. đề tối đa OS X Java cho mỗi quá trình
- 5. Chủ đề trên mỗi Bộ xử lý
- 6. Chạy một tập tin batch mỗi x giây bằng PowerShell
- 7. Thực hiện chức năng được chỉ định mỗi X giây
- 8. Chức năng Javascript để tải lại trang mỗi X giây?
- 9. Chạy lệnh mỗi giây
- 10. giá trị Return từ Java Chủ đề
- 11. Daemon chủ đề Java
- 12. Đăng ký Cuda cho mỗi chủ đề
- 13. Đồng hồ bấm giờ Java cập nhật GUI mỗi giây?
- 14. Một SQLiteConnection cho mỗi chủ đề?
- 15. Chủ đề trong Java
- 16. ViewModel cập nhật mỗi giây?
- 17. Hồ bơi chủ đề trong Java
- 18. java Chủ đề trong libGDX
- 19. javascript lặp mỗi 9 giây?
- 20. An toàn chủ đề trong lớp Java
- 21. Java Dừng máy chủ Chủ đề
- 22. Chủ đề trong các chủ đề trong Java?
- 23. đồng bộ hóa các chủ đề java
- 24. Chủ đề trỏ hướng Java
- 25. System.exit trong Java Chủ đề
- 26. java chủ đề tầm nhìn
- 27. Python: Cách nhận số giây mili giây cho mỗi jiffy
- 28. Bộ sưu tập rác mỗi 100 giây
- 29. jQuery làm thế nào để làm cho sự kiện xảy ra mỗi x giây?
- 30. Làm cách nào để làm mới trình duyệt sau mỗi giây X bằng javascript?
gì xảy ra nếu tôi đóng cửa sổ chính của ứng dụng? tác vụ này sẽ vẫn chạy? – Tomasz