Publicar: un objeto es habilitar que se haga referencia por código fuera del alcance actual:
Formas comunes: almacenamiento de referencias a objetos a dominios estáticos públicos; Referencias de devolución en métodos no privados; Publicar instancias de clase internas, incluidas referencias.
Escape: publique el objeto cuando no esté listo.
No dejes que esta referencia escape del constructor. Por ejemplo, inicie un hilo en el constructor, y el hilo contendrá referencias al objeto.
Contenedor sincronizado: realiza acceso de viaje a todos los estados del contenedor, vector, hashtable, cllections.synchronizedmap | list
Contenedores concurrentes: concurrenthashmap, copyOnwriteArrayList, concurrentLinkedqueue, Bloquingqueue
Enumere las ventajas de la función de acceso aleatorio.
El bloqueo agrega operación de configuración bloqueable
Concurrenthashmap: cerraduras separadas, con un alto rendimiento para el acceso concurrente, mientras que casi no se pierde el rendimiento de acceso de un solo hilo. Devuelve un iterador débilmente consistente.
La consistencia débil del iterador detectará cambios en el contenedor después de que se genera el iterador.
El tamaño de contenedor concurrente (), IsEmpty () se debilita y devuelve un resultado aproximado.
CopyOnWriteArrayList: Copie cada vez que se modifica el contenedor, y el requisito iterativo es mayor que el requisito de modificación.
Modelo de consumidor de productores, utilizando colas de bloqueo limitadas para desacoplar a los productores y el código de los consumidores.
El marco de ejecución de tareas del albacea implementa el modelo de productor y consumidor.
Synchronousqueue: Puse Waits a que el consumidor esté disponible, tome Waits a que el productor esté disponible, adecuado para escenarios en los que el consumidor es suficiente.
Una cola de doble extremo se asocia con el modo de robo de trabajo. Es diferente del hecho de que todos los consumidores comparten una cola de trabajo en el modo productor-consumidor. Cada consumidor en el modo de robo de trabajo tiene su propia cola de doble extremo. Si un consumidor completa todo su trabajo, puede robar tareas al final de otras colas de consumidores.
El modo de robo de trabajo es adecuado para cuando se ejecuta a una unidad de una tarea, se pueden identificar más tareas, como atravesar archivos.
Cuando un método puede lanzar una interrupción interrupcada, significa que es un método bloqueable. Arrojar o atrapar interruptedException.
Sincronizer: Synchronizer --- Semafore, Barrera, Latch, encapsula el estado, determina el comportamiento del hilo en este estado (pase o bloques), proporciona un método para manipular el estado y espera eficientemente que el sincronizador ingrese al estado deseado.
Bloqueo de pestillo: retrasa el progreso del hilo hasta que el hilo alcance un estado final, como un interruptor único. Se puede utilizar para garantizar que no ocurra una actividad específica hasta que se completen otras actividades.
Por ejemplo:
FutUreTask se puede utilizar como un cálculo de resultados portátiles de bloqueo y de bloqueo, y se implementa a través de Callable. Future.get depende del estado de ejecución de la tarea. Si la tarea se completa, se devolverá el resultado. De lo contrario, estará esperando.
El marco del ejecutor utiliza FuturetAk para completar tareas asincrónicas.
SEMAPHER SEMAPHER: Se utiliza para controlar el número de actividades que pueden acceder a un recurso específico simultáneamente o realizar una operación dada al mismo tiempo, grupo de recursos, límite de contenedores.
Nivel de barrera: Similar al bloqueo, todos los hilos deben alcanzar el nivel al mismo tiempo antes de que puedan continuar procesando. El bloqueo espera el tiempo, y el nivel espera otros hilos, y se reutiliza. A través del nivel, Aleit devolverá un número de índice de llegada único para cada hilo, que puede usarse para elegir a un líder y realizar algunas tareas especiales en la próxima iteración.
El intercambiador es una forma de nivel.
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. ¡También espero apoyar a Wulin.com más!