300x250 AD TOP

Thank you so much for taking the time for sharing your knowledge with me

Powered by Blogger.

Monday, July 2, 2018

Tagged under:

Thread.sleep() trong Java – Java Thread sleep


Thread.sleep trong Java

  • Phương thức Thread.sleep() được sử dụng để tạm dừng thực thi của thread theo thời gian 1/1000 giây(milliseconds). Đối số milliseconds bắt buộc là số dương, nếu bạn nhập số âm sẽ xuất lỗi IllegalArgumentException.
  • Có một phương thức khác là sleep(long millis, int nanos) có thể sử dụng để tạm dừng thực thi của thread với giá trị truyền vào là 1/0000 (miniseconds) và 1 phần tỉ (nanoseconds). Giá trị của nano second là từ 0 đến 999999.

Ví dụ về Java Thread Sleep

Mình sẽ viết 1 chương trình đơn giản để tạm dừng thực thi của thread trong 2 giây.
ThreadSleep.java file.
package com.journaldev.threads;

public class ThreadSleep {

    public static void main(String[] args) throws InterruptedException {
        long start = System.currentTimeMillis();
        Thread.sleep(2000);
        System.out.println("Sleep time in ms = "+(System.currentTimeMillis()-start));
        
    }

}

Nếu bạn chạy chương trình trên thì sẽ xuất ra thời gian lớn hơn 2000. Bởi vì đó là cách hoạt động thread sleep và hệ điều hành thực thi thread scheduler.

Những điểm quan trọng của Thread Sleep

  1. Thread Sleep luôn luôn tạm dừng Thread đang thực thi.
  2. Thời gian chính xác của thread sleep trước khi gọi và bắt đầu thực thi được dựa vào thời gian và lịch trình của hệ thống (system timers và schedulers). Khi hế thống nhàn rỗi, thời gian thực của sleep gần bằng với thời gian chỉ định nhưng khi hệ thống bận thì thời gian sẽ tăng lên.
  3. Thread sleep không mất bất kỳ sự giám sát hay khóa (monitors or locks) của thread hiên tại.
  4. Bất kỳ thread nào ngắt ngang, phá vỡ (interrupt) thread trong lúc sleep, thì chương trình sẽ xuất lỗi InterruptedException.

Cách hoạt động của Thread Sleep

Thread.sleep tương tác với lịch trình thread(thread scheduler) để truyền thời gian chờ. Khi thời gian chờ kết thúc, thread chuyển sang chạy thái runnable và đợi CPU thực thi. Vì thể thời gian chính xác của thread sleep phụ thuộc và thread scheduler. Thread scheduler là 1 phần của hệ điều hành.

Nguồn: Thread sleep in java

0 comments:

Post a Comment