Herramientas de usuario

Herramientas del sitio


pc:ideas_diplomatura

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
pc:ideas_diplomatura [2007/03/12 21:32] nicolaswpc:ideas_diplomatura [2018/08/10 03:03] (actual) – editor externo 127.0.0.1
Línea 13: Línea 13:
 === Informativos === === Informativos ===
   * Nested monitor   * Nested monitor
 +
 +
  
  
Línea 69: Línea 71:
   * Como una mala sincronización para hacer incremento atómico falla, por ejemplo ''synchronized(this) { }'' sincroniza con el mismo objeto thread.   * Como una mala sincronización para hacer incremento atómico falla, por ejemplo ''synchronized(this) { }'' sincroniza con el mismo objeto thread.
   * Usar [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/AtomicInteger.html|AtomicInteger]].   * Usar [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/AtomicInteger.html|AtomicInteger]].
-    * Mirar la implementación de esto que básicamente usa ''compareAndSwapInt'' que internamente usa ''sun.misc.Unsafe'', y de esta última no encontre sourcecode FIXME.+    * Mirar la implementación de esto que básicamente usa ''compareAndSwapInt'' que internamente usa ''sun.misc.Unsafe'', y de esta última no encontre sourcecode FIXME. Aparentemente está en los fuentes del SDK que se bajan del sitio "developers".
   * Desensablar con ''javap -c'' y ver que el incremento está desacoplado. Notar los ''monitorenter'', ''monitorexit''.   * Desensablar con ''javap -c'' y ver que el incremento está desacoplado. Notar los ''monitorenter'', ''monitorexit''.
 <code> <code>
Línea 83: Línea 85:
    51:  monitorexit    51:  monitorexit
 </code> </code>
 +
 +
 +
 +== DoubleCheckTest ==
 +
 +Bill Pugh, produjo un [[http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckTest.java|ejemplo]] limpio del problema //[[http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html|The "Double-Checked Locking is Broken" Declaration]]//.
 +
 +El problema es que para Java5 no saltan los errores. FIXME
 +
 +
 +== Lock-free, wait-free linked lists ==
 +
 +  * //"[[http://www.cs.rochester.edu/u/scott/papers/1996_PODC_queues.pdf|Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms]]"//
 +  * **ABA problem**. Problema con las arquitecturas de 64bits en [[http://www.research.ibm.com/people/m/michael/RC23089.pdf|ABA Prevention Using Single-Word Instructions]]. Alguna discusión de problemas de addressing-shrink en las arquitecturas de 64bits: [[http://blogs.msdn.com/oldnewthing/archive/2004/08/17/215682.aspx|The Old New Thing : Why is the virtual address space 4GB anyway?]].
 +  * FIXME Ver como es la implementación en ''java.util.concurrent''.
 +  * Pensar en algo más global con Producer/Consumer.
  
pc/ideas_diplomatura.1173735163.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)