Simular la concurrencia de subprocesos

Simular la concurrencia de subprocesos

El java.util.concurrent.CountDownLatch
CountDownLatch bajo el paquete concurrente . Cuando esta variable no es 0, el hilo correspondiente entra en un estado bloqueado. Cuando la variable es 0, el hilo continuará ejecutándose (operación atómica)

Ahora simule 2000 subprocesos, realice operaciones al mismo tiempo

package com.lcw;

import java.util.concurrent.CountDownLatch;

public class ThreadDemo {
    
    
	private static Integer TheardCount =2000;
	
	static CountDownLatch cld1 = new CountDownLatch(TheardCount);
	
	static CountDownLatch cld2 = new CountDownLatch(TheardCount);
	

	public static void main(String[] args) throws InterruptedException {
    
    
		
		long start =System.currentTimeMillis();
		for (int i = 0; i < TheardCount; i++) {
    
    
			Thread a =new Thread(new MyRunnable());
			a.start();
			// cld1减一
			cld1.countDown();
		}	
		//让主线程进入堵塞状态
		cld2.await();
		long end =System.currentTimeMillis();
		System.out.println(end-start+" 毫秒");
	}
	
public static class MyRunnable implements Runnable{
    
    	
		
		@Override
		public void run() {
    
    
			
			try {
    
    
				cld1.await();
				//让2000个线程进入堵塞
				System.out.println("模拟并发");
			} catch (InterruptedException e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			//修改 cld2 -1
			cld2.countDown();
		}
	}

}


Hay varias formas de hacer que la ejecución de prioridad de subproceso especificada ()
1. Use CountDownLatch para contar, (el orden de ejecución del método de ejecución)
1. Use join ();
3. Use wait ();
4. Use bloqueo de subproceso, notifique ();

Supongo que te gusta

Origin blog.csdn.net/qq_38893133/article/details/103866888
Recomendado
Clasificación