Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 24045|Respuesta: 0

[Programa de consola] aprendizaje volátil de palabras clave en .net/C#

[Copiar enlace]
Publicado en 23/5/2018 11:23:40 | | | |
MS Link:El inicio de sesión del hipervínculo es visible.

La palabra clave volátil indica que un campo puede modificarse por múltiples hilos ejecutándose simultáneamente. Los campos declarados como volátiles no están restringidos por la optimización del compilador (suponiendo que se acceda a ellos mediante un solo hilo). Esto garantiza que el campo se renderice con el valor más reciente en todo momento.

El modificador volátil se utiliza típicamente para campos a los que acceden múltiples hilos pero que no serializan el acceso mediante una sentencia de bloqueo.

Las palabras clave volátiles pueden aplicarse a los siguientes tipos de campos:

  • Tipo de cita.
  • Tipo de puntero (en un contexto inseguro). Cabe señalar que, aunque el puntero en sí puede ser mutable, el objeto al que apunta no puede ser mutable. En otras palabras, no se puede declarar "puntero a un objeto mutable".
  • Tipos como sbyte, byte, short, ushort, int, uint, char, float y bool.
  • Un tipo de enum con uno de los siguientes tipos base: byte, sbyte, short, ushort, int o uint.
  • Parámetros genéricos de tipo que se sabe que son tipos de referencia.
  • IntPtr y UIntPtr.


Las palabras clave variables solo pueden aplicarse a campos de una clase o estructura.Las variables locales no pueden declararse como volátiles


No más tonterías, escribe un bucle para probarlo:

Vamos a probarlo 10.000 veces seguidas,se encontró que la salida de valores a es correcta, pero,No lo explicaVolátil es seguro para roscasPorque, si lo pruebas muchas veces, verás que habrá errores de cálculo. Porque existe la posibilidad de un resultado correcto y otra de un resultado incorrecto



Código:



Probemos 100.000 bucles de nuevo, y podemos ver que el valor de a es incorrecto, porque cuanto menor es el número de bucles, menor es la probabilidad de error, y el error no es tan evidente, igual que no hubo error después de 10.000 bucles hace un momento.

En este momento, añadimos un bloqueo para probar, y se puede ver que el valor de a se calcula correctamente como esperábamos.



Código:



Resumen: volátil no garantiza la seguridad del hilo, como puedes ver en el ejemplo anterior.




Anterior:Descarga la herramienta de captura de paquetes smsniff versión china 2.0
Próximo:VS Depuración Remota "Solución de depuración tarda más de lo esperado"
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com