สนับสนุนโดย

วันพฤหัสบดีที่ 20 ธันวาคม พ.ศ. 2561

Thread Priorities

การจัดความสำคัญของเทรด ถือได้ว่าจำเป็นมากสำหรับการเขียนโปรแกรมที่ต้องแยกส่วนทำงาน และทำงานพร้อมๆ กันหลายเทรด ในเวลาเดียวกัน เพราะในบางงานมีความสำคัญมาก บางงานสำคัญน้อยกว่า ดังนั้นแล้วเราต้องจัดระดับความสำคัญ ตรงนี้เราเรียกว่า priorities ครับ

มี 3 ระดับคือ
MIN
NORM
MAX


ลองมาดูโค้ดที่เราจัดระดับความสำคัญกันดู (อันไหนความสำคัญมาก ก็ต้องโดนทำงานให้จบก่อน)
package myPackage;

class KobThread extends Thread {
    public KobThread(String name) {
        super(name);
    }
    
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.print(getName());
        }
    }
}

public class ThreadPriorities {
    public static void main(String[] args) {
        Thread a = new KobThread("A");
        Thread b = new KobThread("B");
        
        a.setPriority(Thread.MAX_PRIORITY);
        b.setPriority(Thread.MIN_PRIORITY);
        
        a.start();
        b.start();
    }
    
}

ผลการทำงาน
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBAAAAAAAAABBBBBBBBBBBBBAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAABBBAAAAAAAAAAAAAAAAABBBBBBBBBAAAAAAAAAAAAAAAAAABBBBBBBBBBB

สังเกตุว่า A จะโดนทำงานจบก่อนเสมอ เพราะกำหนดระดับความสำคัญให้สูงกว่า B

ไม่มีความคิดเห็น:

แสดงความคิดเห็น