Computer >> Máy Tính >  >> Lập trình >> Java

Ưu tiên luồng Java trong Đa luồng

Trong tình huống đa luồng, một bộ lập lịch luồng chỉ định các luồng cho các quy trình cụ thể dựa trên mức độ ưu tiên kế thừa. Một luồng java đi kèm với một mức độ ưu tiên được chỉ định trước. Ngoài ra, máy ảo java cũng có thể chỉ định mức độ ưu tiên cho các luồng hoặc do người lập trình đưa ra một cách rõ ràng. Phạm vi giá trị cho mức độ ưu tiên của một luồng nằm trong khoảng từ 1 đến 10 (bao gồm). Ba biến tĩnh được liên kết với mức độ ưu tiên là -

  • MAX_PRIORITY - Mức độ ưu tiên tối đa mà một luồng có, có giá trị mặc định là 10.

  • NORM_PRIORITY - Mức độ ưu tiên mặc định mà một chuỗi có, có giá trị mặc định là 5.

  • MIN_PRIORITY - Mức độ ưu tiên tối thiểu mà một chuỗi có, có giá trị mặc định là 1.

Phương thức ‘getPosystem ()’ trong Java giúp trả về mức độ ưu tiên của luồng được ràng buộc dưới dạng giá trị cho nó.

Phương thức ‘setPosystem ()’ thay đổi giá trị ưu tiên của một luồng nhất định. Nó ném raIllegalArgumentException khi mức độ ưu tiên của luồng nhỏ hơn 1 hoặc lớn hơn 10.

Ví dụ

import java.lang.*;
public class Demo extends Thread{
   public void run(){
      System.out.println("Now, inside the run method");
   }
   public static void main(String[]args){
      Demo my_thr_1 = new Demo();
      Demo my_thr_2 = new Demo();
      System.out.println("The thread priority of first thread is : " + my_thr_1.getPriority());
      System.out.println("The thread priority of first thread is : " +       my_thr_2.getPriority());
      my_thr_1.setPriority(5);
      my_thr_2.setPriority(3);
      System.out.println("The thread priority of first thread is : " +    my_thr_1.getPriority());
      System.out.println("The thread priority of first thread is : " + my_thr_2.getPriority());
      System.out.print(Thread.currentThread().getName());
      System.out.println("The thread priority of main thread is : " +
      Thread.currentThread().getPriority());
      Thread.currentThread().setPriority(10);
      System.out.println("The thread priority of main thread is : " +
      Thread.currentThread().getPriority());
   }
}

Đầu ra

The thread priority of first thread is : 5
The thread priority of first thread is : 5
The thread priority of first thread is : 5
The thread priority of first thread is : 3
The thread priority of main thread is : 5
The thread priority of main thread is : 10

Một lớp có tên Demo kế thừa từ Luồng của lớp cơ sở. Hàm 'run' được xác định và một thông tin liên quan được xác định. Trong hàm chính, hai phiên bản của lớp Demo được tạo và các thuộc tính của chúng được tìm thấy bằng cách gọi hàm "getPosystem".

Chúng được in trên bảng điều khiển. Tiếp theo, các phiên bản Demo được chỉ định mức độ ưu tiên bằng cách sử dụng chức năng ‘setPasty ’. Đầu ra được hiển thị trên bàn điều khiển. Tên của các chủ đề được in trên màn hình với sự trợ giúp của chức năng "getName".