Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Las deques y las listas en STL son seguras para subprocesos?

¿Las deques y las listas en STL son seguras para subprocesos?

Deque y list bajo STL son seguros para subprocesos

Por lo general, hay dos formas de resolver este problema en java

Una: usar la palabra clave sincronizada;

Dos: Utilice Collections.synchronizedList();

Supongamos que crea el siguiente código: List>data=new ArrayList>();

Luego, para resolver el problema de seguridad de subprocesos, puede usar Collections.synchronizedList()

Por ejemplo:

List>data=Collections.synchronizedList (new ArrayList& lt;Map>());

Reemplace la nueva palabra clave y todo lo demás seguirá igual. Puede consultar la documentación de la API para aprender a usarla. /p> p>

Hay dos tipos de listas en C++:

Una es una estructura de datos de lista que implementa manualmente y la otra es una estructura de datos de lista que STL encapsula para usted.

Si lo implementas manualmente, envía el código fuente y te ayudaré a descubrir cómo optimizarlo.

Si se implementa en stl

entonces no puedes esperar que STL te proporcione soporte para subprocesos, porque necesita eficiencia.

Cosas a tener en cuenta:

1. Es seguro leer varios hilos. Varios subprocesos pueden leer el contenido del contenedor simultáneamente. Sólo se puede leer, no escribir.

2. Las escrituras múltiples en diferentes contenedores son seguras. Varios subprocesos pueden escribir en diferentes contenedores al mismo tiempo. Tenga en cuenta que son contenedores diferentes.

Por lo tanto, debe escribir su propia clase de plantilla para que el contenedor implemente el bloqueo (bloqueo en construcción, liberación en destrucción) y luego definir variables temporales de esa clase al acceder al contenedor. Las variables temporales garantizan que cuando se lanza una excepción, el objeto temporal también se destruya, liberando así el bloqueo.