PDF de la clase 34
PDF de la clase 34
PDF de la clase 34
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Sincronización en el JDK<br />
• El truco resi<strong>de</strong> en saber si un método necesita ser<br />
sincronizado. Muchos métodos <strong>de</strong> <strong>la</strong>s c<strong>la</strong>ses<br />
pre<strong>de</strong>finidas <strong>de</strong> Java ya están sincronizados.<br />
• Por ejemplo, <strong>la</strong> mayoría <strong>de</strong> los métodos <strong>de</strong> <strong>la</strong> c<strong>la</strong>se<br />
Vector están sincronizados por el motivo <strong>de</strong>scrito<br />
anteriormente.<br />
• Otro ejemplo: el método <strong>de</strong> <strong>la</strong> c<strong>la</strong>seComponent <strong>de</strong> Java<br />
AWT que agrega un objetoMouseListener a un Component<br />
(para que MouseEvents se registren en elMouseListener)<br />
también está sincronizado. Si comprueba el código fuente<br />
<strong>de</strong> AWT y Swing, encontrará que <strong>la</strong> firma <strong>de</strong> este método es<br />
public synchronized void<br />
addMouseListener(MouseListener l)<br />
Valores pre<strong>de</strong>terminados <strong>de</strong><br />
sincronización en Java<br />
• De forma pre<strong>de</strong>terminada (es <strong>de</strong>cir, a no ser<br />
que se <strong>de</strong>c<strong>la</strong>re lo contrario), los métodos NO<br />
están sincronizados.<br />
• Dec<strong>la</strong>rar un método como sincronizado<br />
ralentizará <strong>la</strong> ejecución <strong>de</strong>l programa, ya que <strong>la</strong><br />
adquisición y liberación <strong>de</strong> bloqueos genera una<br />
sobrecarga.<br />
• También introduce <strong>la</strong> posibilidad <strong>de</strong> un nuevo<br />
tipo <strong>de</strong> fallo l<strong>la</strong>mado interbloqueo.<br />
• Sin embargo, en muchos casos resulta<br />
esencial sincronizar los métodos para que el<br />
programa se ejecute correctamente.<br />
28<br />
27<br />
14