Hari ini saya melihat program Java bersamaan, menulis program entri, dan mengatur prioritas thread.
kelas Elem mengimplementasikan Runnable{ public static int id = 0; private int cutDown = 5; private int prioritas; public void setPriority(int prioritas){ this.priority = prioritas; void run(){ Thread.currentThread().setPriority(prioritas); int threadId = id++; 0){ ganda d = 1,2; while(d < 10000) d = d + (Matematika.E + Matematika.PI)/d; System.out.println("#" + threadId + "(" + cutDown + ") "); } }}kelas publik Dasar { public static void main(String args[]){ for(int i = 0; i < 10; i++){ Elem e = baru Elem(); if(i == 0 ) e.setPriority(Thread.MAX_PRIORITY); else e.setPriority(Thread.MIN_PRIORITY);
Karena mesinnya sangat bertenaga, saya tidak melihat efek bersamaan pada awalnya. Rasanya seperti dijalankan secara berurutan, jadi operasi floating point ditambahkan di tengah untuk menunda waktu.
Tentu saja, Executors dapat digunakan untuk mengelola thread di fungsi utama.
import java.util.concurrent.*;class Elem mengimplementasikan Runnable{ public static int id = 0; private int cutDown = 5; private int prioritas; ){ kembalikan ini.prioritas; } public void run(){ Thread.currentThread().setPriority(priority); id++; while(cutDown-- > 0){ double d = 1.2; while(d < 10000) d = d + (Matematika.E + Matematika.PI)/d; "(" + cutDown + ")"); kelas publik Dasar { public static void main(String args[]){// for(int i = 0; i < 10; i++){// Elem e = Elem baru();// if(i == 0 )// e.setPriority(Thread.MAX_PRIORITY);// else// e.setPriority(Thread.MIN_PRIORITY);/ /Utas t = Utas baru(e);// t.start();// } ExecutorService exec = Executors.newCachedThreadPool(); for(int i = 0; i < 10; i++){ Elem e = new Elem(); if(i == 0 ) e.setPriority(Thread.MAX_PRIORITY); .MIN_PRIORITAS); exec.execute(e); } exec.shutdown();