packagecom.elphel.imagej.common;publicclassMultiThreading{publicstaticintTHREADS_MAX=100;/* Create a Thread[] array as large as the number of processors available. * From Stephan Preibisch's Multithreading.java class. See: * http://repo.or.cz/w/trakem2.git?a=blob;f=mpi/fruitfly/general/MultiThreading.java;hb=HEAD */publicstaticThread[]newThreadArray(){returnnewThreadArray(THREADS_MAX);}publicstaticThread[]newThreadArray(intmaxCPUs){intn_cpus=Runtime.getRuntime().availableProcessors();if(n_cpus>maxCPUs)n_cpus=maxCPUs;returnnewThread[n_cpus];}/* Start all given threads and wait on each of them until all are done. * From Stephan Preibisch's Multithreading.java class. See: * http://repo.or.cz/w/trakem2.git?a=blob;f=mpi/fruitfly/general/MultiThreading.java;hb=HEAD */publicstaticvoidstartAndJoin(Thread[]threads)// USED in lwir{for(intithread=0;ithread<threads.length;++ithread){threads[ithread].setPriority(Thread.NORM_PRIORITY);threads[ithread].start();}try{for(intithread=0;ithread<threads.length;++ithread)threads[ithread].join();}catch(InterruptedExceptionie){thrownewRuntimeException(ie);}}}