Khi máy ảo gặp sự cố sleep(long)
, nó sẽ làm gián đoạn Chủ đề hiện đang chạy. "Chủ đề hiện tại" vào thời điểm đó luôn là luồng được gọi là Thread.sleep()
. Sau đó, nó nói:
Hey! Không có gì để làm trong chủ đề này (Bởi vì tôi phải đợi). Tôi sẽ tiếp tục một Chủ đề khác.
Thay đổi chủ đề được gọi là "mang lại". (Lưu ý: bạn có thể tự kiếm tiền bằng cách gọi Thread.yield();
)
Vì vậy, nó không phải tìm ra Chủ đề hiện tại là gì. Nó luôn luôn là Chủ đề được gọi là sleep(). Lưu ý: Bạn có thể nhận được các thread hiện hành bằng cách gọi Thread.currentThread();
Một ví dụ nhỏ:
// here it is 0 millis
blahblah(); // do some stuff
// here it is 2 millis
new Thread(new MyRunnable()).start(); // We start an other thread
// here it is 2 millis
Thread.sleep(1000);
// here it is 1002 millis
MyRunnable
phương pháp run()
của nó:
// here it is 2 millis; because we got started at 2 millis
blahblah2(); // Do some other stuff
// here it is 25 millis;
Thread.sleep(300); // after calling this line the two threads are sleeping...
// here it is 325 millis;
... // some stuff
// here it is 328 millis;
return; // we are done;
Nguồn
2010-08-21 10:45:25
+1: Tôi không thể tìm thấy các từ chính xác. –