Las clases D2.0 tienen una propiedad de clase __monitor
que "da acceso al monitor del objeto de clase" (documentation). Busqué un poco y no encontré ninguna información a excepción de this poco de detalle. Entonces, ¿qué es un monitor? ¿Por qué se usa un monitor para todos synchronized member functions? ¿Es synchronization primitive usado para sincronizar funciones miembro similares a Java? ¿Y por qué la propiedad __monitor
está en la definición de idioma si no se supone que debe usarla/¿Cuáles son los casos de uso?¿Qué es un monitor de clase en D?
10
A
Respuesta
6
El monitor es un objeto lentamente inicializado que sincroniza todos los métodos sincronizados, al igual que en Java. A diferencia de Java, D es un lenguaje de programación de sistemas y expone detalles de nivel inferior de cómo funcionan las cosas en caso de que necesite hackearlas, incluso si hacerlo es generalmente una mala idea. Esto le permite personalizar el comportamiento. Por ejemplo, es posible personalizar el objeto de monitor de una clase, o usar un core.sync.mutex
que comparte un monitor con la clase que lo posee.
Cuestiones relacionadas
- 1. ¿Qué es un monitor en Java?
- 2. ¿Qué es "-d" en "npm -d install"?
- 3. Clase de monitor en Java
- 4. En java -D ¿qué significa la D?
- 5. Clase de almacenamiento "in" D
- 6. ¿Cómo sé qué monitor es una ventana WPF en
- 7. ¿Qué significa .d en JSON?
- 8. ¿Cómo pruebo que un objeto es una instancia de una clase particular en D?
- 9. ¿Qué significa M, D en decimal (M, D) exactamente?
- 10. ¿Cuál es el significado del monitor de un objeto en Java? ¿Por qué usar esta palabra?
- 11. Función que devuelve el nombre de clase en D
- 12. Pruebe si un alias es una plantilla en D 2.0
- 13. ¿evento de emisión de linux cuando el monitor se conecta con el conector D-sub?
- 14. ¿Qué do// y +/indican en D?
- 15. ¿Iniciar el programa en un segundo monitor?
- 16. ¿Qué es un literal de clase en Java?
- 17. ¿Qué es "Atributos derivados" en un Diagrama de clase?
- 18. udev monitor es lento sin sondeo
- 19. ¿Cómo usar JavaScript para medir qué tan brillante es el monitor de un usuario?
- 20. ¿Por qué usar @property en D?
- 21. ¿Cómo identificar de manera única un monitor?
- 22. Haciendo una clase de C++ de un monitor (en el sentido concurrente)
- 23. Descargar un archivo en D
- 24. Cómo vincular bibliotecas D en un programa D
- 25. ¿Cómo activo un segundo monitor en C#?
- 26. ¿Cómo encender/apagar el/los monitor (es)?
- 27. ¿Qué ocurre cuando un archivo es `fuente`-d en contexto Unix/Linux?
- 28. ¿Qué es una clase en PHP?
- 29. ¿Cómo puedo codificar un monitor en C?
- 30. Monitor de red gratuito
Gracias. Entonces, si miro 'object.d', veo una interfaz' Object.Monitor' (alias 'IMonitor') para este monitor. Esto es lo que tengo que implementar? Y si miro 'core.sync.mutex', veo un uso de muestra (en los comentarios algo como' // NOTA: con DMD esto puede ser "o .__ monitor = & m_proxy" .'). ¿Correcto? – stephan
@stephan: No estoy seguro, nunca he tenido que meterme con esto antes, así que no sé los detalles. – dsimcha
No debería tener que implementar el monitor ni configurarlo usted mismo a menos que esté haciendo algo * muy * extraño. He usado varias primitivas de sincronización en D varias veces y nunca he tenido que hacer nada por el estilo. –