วันนี้ฉันดูโปรแกรม Java ที่ทำงานพร้อมกัน เขียนโปรแกรมเริ่มต้น และตั้งค่าลำดับความสำคัญของเธรด
คลาสเอเลมใช้ Runnable { public static int id = 0; private int cutDown = 5; public void setPriority (int Priority) { this.priority = Priority; } public int getPriority () { return this.priority; เป็นโมฆะ run(){ Thread.currentThread().setPriority(priority); int threadId = id++; while(cutDown--> 0){ double d = 1.2; while(d < 10,000) d = d + (Math.E + Math.PI)/d; System.out.println("#" + threadId + "(" + cutDown + ") "); } }} คลาสสาธารณะพื้นฐาน { โมฆะสาธารณะคงที่ main (String args []) { สำหรับ (int i = 0; i < 10; i ++) { Elem e = ใหม่ องค์ประกอบ (); if(i == 0 ) e.setPriority(Thread.MAX_PRIORITY);
เนื่องจากเครื่องมีประสิทธิภาพมาก ฉันไม่เห็นผลที่เกิดขึ้นพร้อมกันในตอนแรก รู้สึกเหมือนถูกดำเนินการตามลำดับ ดังนั้นจึงมีการเพิ่มการดำเนินการจุดลอยตัวตรงกลางเพื่อชะลอเวลา
แน่นอนว่า Executors สามารถใช้จัดการเธรดในฟังก์ชันหลักได้
นำเข้า java.util.concurrent.*; class Elements ใช้ Runnable { public static int id = 0; private int Priority; ){ return this.priority; } public void run(){ Thread.currentThread().setPriority(priority); int threadId = id++; while(cutDown-- > 0){ double d = 1.2; while(d < 10,000) d = d + (Math.E + Math.PI)/d; System.out.println("#" + threadId + "(" + cutDown + ")"); คลาสสาธารณะพื้นฐาน { โมฆะคงที่สาธารณะ main (String args []){// สำหรับ (int i = 0; i < 10; i++){// องค์ประกอบ e = องค์ประกอบใหม่ ();// ถ้า (i == 0 )// e.setPriority(Thread.MAX_PRIORITY);// else// e.setPriority(Thread.MIN_PRIORITY);/ /Thread t = เธรดใหม่(e);// t.start();// } ExecutorService exec = Executors.newCachedThreadPool(); สำหรับ (int i = 0; i < 10; i++){ Elem e = new Elem(); if(i == 0 ) e.setPriority(Thread.MAX_PRIORITY); .MIN_PRIORITY); exec.execute(e); } exec.shutdown( }}