Son mutexes necesarios en JavaScript?

JavaScript defínese como unha linguaxe resentida que significa que non hai fíos expostos ao usuario, pode haber subprocesos na implementación. As funcións como setTimeout() e as devolucións de chamadas asíncronas deben esperar que o motor de script sexa suspendido antes de que poidan executarse.

Isto significa que todo o que ocorre nun evento debe ser rematado antes de que o próximo evento sexa procesado.

Dito isto, pode que necesite un mutex se o seu código fai algo onde esperas un valor para cambiar entre o momento en que desencadeou o evento asíncrono eo momento en que se chamou a devolución de chamada.

Por exemplo, se ten unha estrutura de datos en que fai clic nun botón e envíe un XMLHttPRequest que chama a unha devolución de chamada, cambia a estrutura de datos de forma destrutiva e ten outro botón que cambia a mesma estrutura de datos directamente, entre Cando o evento foi disparado e cando se executou a devolución de devolución, o usuario podería facer clic e actualizar a estrutura de datos antes da devolución de chamada, que podería perder valor.

Aínda que pode crear unha condición de carreira así, é moi fácil evitala no seu código, xa que cada función será atómica. Sería moito traballo e necesitaríanse algúns estraños patróns de codificación para crear a condición profesional de feito.

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *