Red de conocimiento informático - Aprendizaje de programación - Seguridad multiproceso de IOS (bloqueo de subprocesos)

Seguridad multiproceso de IOS (bloqueo de subprocesos)

La inseguridad de los subprocesos se refiere a los resultados impredecibles cuando varios subprocesos acceden y modifican los recursos que disfrutamos.

Varios tipos de bloqueos se utilizan comúnmente en el desarrollo multiproceso de iOS para garantizar la seguridad de los subprocesos: NSLock, despacho_semaphore, NSCondition, NSRecursiveLock, @synchronized.

WEAKSELF typeof(self) __weak débilSelf = self;

NSLock es un tipo de bloqueo implementado por la capa OC que encapsula las operaciones de subprocesos subyacentes y hereda el protocolo NSLocking. No puede iterar sobre un bloqueo; si bloquea dos veces sin desbloquearlo, tendrá un problema de interbloqueo.

Operaciones atómicas

Las operaciones atómicas son operaciones ininterrumpibles, es decir, durante la ejecución de la operación, el sistema operativo no suspenderá el hilo, pero definitivamente finalizará

Las operaciones atómicas son operaciones ininterrumpibles, es decir, durante la ejecución de la operación, el sistema operativo no suspenderá el hilo, pero definitivamente finalizará

Las operaciones atómicas son ininterrumpibles operaciones, es decir, digamos, el sistema operativo no suspenderá el hilo durante la ejecución de la operación. Definición atómica en la variable PropertyProperty

Generalmente, definimos una variable @property (nonatomic, fuerte)NSLock *lock; noatomic: no atómico, no bloqueará el método de configuración, adecuado para dispositivos móviles con poca memoria.

PD: En el proceso de desarrollo de iOS, las propiedades generalmente se declaran como propiedades no atómicas para tratar de evitar que varios subprocesos se apropien del mismo recurso y para intentar transferir operaciones de preferencia de recursos (como el bloqueo) a el servidor.

NSCondition se usa a menudo en el modelo productor-consumidor, que hereda el protocolo NSLocking y tiene métodos de bloqueo y desbloqueo. Las variables de condición son algo así como semáforos, que proporcionan mecanismos de señalización y bloqueo de subprocesos, por lo que pueden usarse para bloquear subprocesos y esperar a que los datos estén listos antes de activar el programa.

Los semáforos tienen principalmente tres funciones:

Nota: El orden normal de uso es primero el nivel bajo y luego el nivel alto. Estas dos funciones suelen aparecer en pares.

Este artículo se refiere principalmente a este artículo (blogs.com/crash-wu/p/4806499.html

) y verificó las partes comprensibles una por una. Escrito de forma muy parecida a esta antes, ¡así que perdóname si hay algún error!