Este artículo analiza el uso y el uso concurrente en Java en detalle. Compártelo para todos para su referencia. El análisis específico es el siguiente:
1. El contenedor síncrono incluye dos partes: vector y hashtable
El otro es una clase de empaque sincrónica, que fue creada por colecciones. El contenedor síncrono entrevista a todos los estados del contenedor para lograr la seguridad de los hilos.
Tienen los siguientes problemas:
A) Para la operación, se requiere protección de bloqueo adicional. Por ejemplo, las condiciones iterativas y faltantes como la adición.
b) Tostring, hashcode, iguales indirectamente llamará iterativo, y debe prestar atención a la concurrencia.
2. Contenedor concurrente en Java5.0.
Concurrenthashmap puede reemplazar la implementación del mapa sincrónico.
Cuando se lee principalmente, CopyOnWriteArrayList es una implementación sincrónica de la lista.
Al mismo tiempo, cola y bloqueo: concurentlinkedqueue: fifo cola.
PriorityQueue: cola prioritaria no femenadora.
Bloquingqueue aumentó el bloqueo y la adquisición de bloqueo.
a) Concurenthashmap: no es un bloqueo público, sino un bloqueo separado. Se puede acceder a cualquier cantidad de hilos de lectura simultáneamente, los lectores y los escritores también pueden acceder al mapa simultáneamente, y el número limitado de escritura también puede modificar el mapa simultáneamente. Sin embargo, el tamaño y el lenguaje isemptante se debilitan, lo cual se estima.
b) CopyOnWriteArrayList: el iterador conserva una referencia de matriz base de la capa inferior, y la referencia no se modificará.
3. Sincronizador
a) CountdownLatch. El parámetro del constructor es n, después de la cuenta regresiva, n es 0, y todos los hilos de espera continúan ejecutándose.
b) FUTURETASK: Calcule Runnable, que puede ser implementado por Callable y puede llevar el resultado. Incluyendo: espera, corre y complete.
c) Semafore: el número de actividades a las que se puede acceder al mismo tiempo
D) Cyclicbarrier: similar a la atresia. La cerradura está esperando el incidente, y el nivel está esperando otros hilos. Se esperan n, runnable r, n hilos ().
Se espera que este artículo sea útil para el diseño del programa Java de todos.