- Hệ thống Java chạy dựa trên các thread và các lớp thư viện thiết kế với chức năng multithreading, Java sử dụng hiệu quả các tiểu trình này ngay trong môi trường không đồng bộ | ĐỒ ÁN TỐT NGHIỆP LẬP TRÌNH MẠNG VỀ DỊCH VỤ THƯ ĐIỆN TỬ CHƯƠNG 4 GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH JAVA. - Hệ thống Java chạy dựa trên các thread và các lớp thư viện thiết kế với chức năng multithreading Java sử dụng hiệu quả các tiểu trình này ngay trong môi trường không đồng bộ. Điều này làm giảm thiểu sự lãng phí CPU. - Trong Java có hai cách để tạo một lớp hiện thực như một thread J Tạo lớp dẫn xuất từ lớp thread của java. J Cài đặt giao tiếp Runnable. - Tạo một lớp là extends của lớp Thread. class className extends Thread public void run . Thread body of execution Khi gọi phương thức start phương thức run tự động được gọi className myClass new classNamef - Tạo một lớp implements Runnable interface class className implements Runnable public void run . Thread body of execution Để chạy thread loại này cần pass một instance của lớp cho một đối tượng Thread mới className myClass new className new Thread myClass .start Tính chất thread. - Java cho mỗi thread một độ ưu tiên trong tất cả các thread đang xử lý. Độ ưu tiên là một số nguyên cho biết thứ tự ưu tiên của nó với các thread khác. Độ ưu tiên của thread dùng để quyết định khi nào có thể chuyển sang thực hiện thread kế tiếp. Đây được gọi là chuyển đổi ngữ cảnh context switch . Theo ngầm định một thread thừa hưởng mức ưu tiên của thread cha. Ta có thể tăng hoặc giảm mức ưu tiên của bất kỳ thread nào bằng cách dùng phương t hức setPriority. Mức ưu tiên có thể được set trong khoảng giá trị từ MIN_PRIORITY được định nghĩa là một trong lớp Thread và MAX_PRIORITY bằng 10 . NORM_PRIORITY được định nghĩa là 5. - Trong trường hợp 2 thread có cùng độ ưu tiên tranh giành CPU. Với hệ điều hành như windows 98 các thread có cùng độ ưu tiên được phân chia tự động. Với hệ điều hành khác như Solaris các thread cùng cấp phải tự động nhường điều khiển cho thread khác. Nếu không làm điều này các thread khác sẽ không được chạy. - Khi Thread-Scheduler có cơ hội nhận một thread mới nó sẽ chọn thread có mức ưu tiên cao .