Aujourd'hui, j'ai examiné le programme simultané Java, écrit un programme d'entrée et défini la priorité du thread.
class Elem implémente Runnable{ public static int id = 0; private int cutDown = 5; private public void setPriority(int priorité){ this.priority = priorité; void run(){ Thread.currentThread().setPriority(priority); int threadId = id++ while(cutDown--> 0){ double d = 1,2; while(d < 10000) d = d + (Math.E + Math.PI)/d; System.out.println("#" + threadId + "(" + cutDown + ") "); } }}public class Basic { public static void main(String args[]){ for(int i = 0; i < 10; i++){ Elem e = new Elem(); if(i == 0 ) e.setPriority(Thread.MAX_PRIORITY); else e.setPriority(Thread.MIN_PRIORITY);
Parce que la machine est très puissante, je n'ai pas vu l'effet simultané au début. J'avais l'impression qu'elle était exécutée en séquence, donc des opérations en virgule flottante ont été ajoutées au milieu pour retarder le temps.
Bien entendu, les exécuteurs peuvent être utilisés pour gérer les threads dans la fonction principale.
importer java.util.concurrent.*;class Elem implémente Runnable{ public static int id = 0; private int cutDown = 5; public void setPriority(int priorité){ this.priority = priorité } public int getPriority( ){ return this.priority; } public void run(){ Thread.currentThread().setPriority(priority); id++; while(cutDown-- > 0){ double d = 1.2; while(d < 10000) d = d + (Math.E + Math.PI)/d; System.out.println("#" + threadId + "(" + cutDown + ")"); } }}public class Basic { public static void main(String args[]){// for(int i = 0; i < 10; i++){// Elem e = new Elem();// if(i == 0 )// e.setPriority(Thread.MAX_PRIORITY);// else// e.setPriority(Thread.MIN_PRIORITY);/ /Thread t = nouveau Thread(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 else e.setPriority(Thread); .MIN_PRIORITY); exec.execute(e); } exec.shutdown( }}