SlideShare una empresa de Scribd logo
1 de 19
Synchronization
Un recurso compartido puede
corromperse si este es accedido
simultaneamente por múltiples hilos.
Synchronization
Problema: Codificar un programa que
demuestre el conflicto en los recursos.
Supongamos que queremos crear e iniciar
cien hilos, cada uno de los cuales agrega
un centavo a un piggy bank.
Synchronization
Asumamos que al inicio el piggy bank esta
vacío.
Creamos la clase PiggyBank para modelar
el Piggy bank.
Synchronization
La clase AddPennyThread agrega un
centavo al piggy bank.
Creamos la clase principal
PiggyBankWithoutSync para crear y
lanzar los hilos.
Synchronization
El problema es que el hilo thread[ï] y
thread[j] acceden un recurso común y esto
causa un conflicto.
The keyword synchronized
Para evitar el conflicto con los recursos
Java utiliza la palabra clave synchronized
para sincronizar la invocación del método
de tal forma que sólo un hilo puede
acceder a un método a la vez.
Para coordinar la corrupción de los datos
reescribimos el programa
PiggyBankWithSync.java
The keyword synchronized
Un método sincronizado adquiere un
cerrojo antes de ser ejecutado.
The keyword synchronized
En el caso de un método de instancia el
cerrojo esta en el objeto para el cual el
método fue invocado.
En el caso de un método de clase (static)
el cerrojo esta en la clase.
The keyword synchronized
Si un hilo invoca un método de instancia
sincronizado (respectivamente un método
static) en un objeto, el cerrojo para el
objeto ( respectivamente, la clase) se
adquiere primero, luego el método es
ejecutado y finalmente el cerrojo es
liberado.
The keyword synchronized
Ud. Puede reescribir el programa para
agregar un método sincronizado de
instancia con el nombre addPenny en la
clase PiggyBank.
En este caso el cerrojo será un simple
objeto PiggyBank, lo cual es suficiente
para asegurar que un sólo hilo pueda
ejecutar el método addPenny en cualquier
momento. Ejercicio 15.11
Synchronized Statements
Al invocar un método sincronizado de un
objeto se adquiere un cerrojo en el objeto
y al invocar un método static sincronizado
de una clase se adquiere el cerrojo en la
clase.
Synchronized Statements
La sentencia synchronized puede ser
usada para adquirir un cerrojo en
cualquier objeto no sólo “this” cuando
ejecutamos un bloque de código dentro
del método.
Synchronized Statements
La forma general de la sentencia es:
synchronized (expr)
{
}
Synchronized Statements
La expresión “expr” debe ser evaluada en
la referencia del objeto.
Si el objeto ya tiene un cerrojo de otro hilo,
el hilo es bloqueado hasta que el cerrojo
es liberado.
Synchronized Statements
Cuando un cerrojo es adquirido en un
objeto las sentencias dentro del bloque
sincronizado se ejecutan y luego el cerrojo
es liberado.
Synchronized Statements
La sentencia synchronized le permite
sincronizar parte del código dentro del
método en lugar de todo el método. Esto
mejora la concurrencia.
Synchronized Statements
La sentencia synchronized le permite
adquirir un cerrojo en cualquier objeto de
tal manera que UD. Puede sincronizar el
acceso a un objeto en lugar de todo el
método.
Synchronized Statements
cualquier método de instancia puede ser
convertido en una sentencia synchronized.
Suponga que tenemos el siguiente
método de instancia:
public synchronized void xxmethod(){
… method body
}
Synchronized Statements
El método anterior es equivalente a:
public void xxMethod(){
synchronized(this) {
body
}
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Hilos – threads en java
Hilos – threads   en javaHilos – threads   en java
Hilos – threads en java
 
2o departamental Programacion 3
2o departamental Programacion 32o departamental Programacion 3
2o departamental Programacion 3
 
Java Threads (Hilos en Java)
Java Threads (Hilos en Java)Java Threads (Hilos en Java)
Java Threads (Hilos en Java)
 
Clase9 threads
Clase9 threadsClase9 threads
Clase9 threads
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Programando en java
Programando en javaProgramando en java
Programando en java
 
Multitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplosMultitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplos
 
Ocp, jse 6 programmer (1 z0 851) - guia practica 4 de 7(concurrencia) v1
Ocp, jse 6 programmer (1 z0 851) - guia practica 4 de 7(concurrencia) v1Ocp, jse 6 programmer (1 z0 851) - guia practica 4 de 7(concurrencia) v1
Ocp, jse 6 programmer (1 z0 851) - guia practica 4 de 7(concurrencia) v1
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Thread group demonios- parte1
Thread group demonios- parte1Thread group demonios- parte1
Thread group demonios- parte1
 
Multitarea e hilos en java
Multitarea e hilos en javaMultitarea e hilos en java
Multitarea e hilos en java
 
Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
PCJ Sesión 9: Threads
PCJ Sesión 9: ThreadsPCJ Sesión 9: Threads
PCJ Sesión 9: Threads
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
 
Networking
NetworkingNetworking
Networking
 
Threads
ThreadsThreads
Threads
 
Capitulo 8 9-10
Capitulo 8 9-10Capitulo 8 9-10
Capitulo 8 9-10
 
Multitaréa e hilos
Multitaréa e hilosMultitaréa e hilos
Multitaréa e hilos
 
Multitarea
MultitareaMultitarea
Multitarea
 

Último

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 

Último (20)

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 

Chap 15gpin

  • 1. Synchronization Un recurso compartido puede corromperse si este es accedido simultaneamente por múltiples hilos.
  • 2. Synchronization Problema: Codificar un programa que demuestre el conflicto en los recursos. Supongamos que queremos crear e iniciar cien hilos, cada uno de los cuales agrega un centavo a un piggy bank.
  • 3. Synchronization Asumamos que al inicio el piggy bank esta vacío. Creamos la clase PiggyBank para modelar el Piggy bank.
  • 4. Synchronization La clase AddPennyThread agrega un centavo al piggy bank. Creamos la clase principal PiggyBankWithoutSync para crear y lanzar los hilos.
  • 5. Synchronization El problema es que el hilo thread[ï] y thread[j] acceden un recurso común y esto causa un conflicto.
  • 6. The keyword synchronized Para evitar el conflicto con los recursos Java utiliza la palabra clave synchronized para sincronizar la invocación del método de tal forma que sólo un hilo puede acceder a un método a la vez. Para coordinar la corrupción de los datos reescribimos el programa PiggyBankWithSync.java
  • 7. The keyword synchronized Un método sincronizado adquiere un cerrojo antes de ser ejecutado.
  • 8. The keyword synchronized En el caso de un método de instancia el cerrojo esta en el objeto para el cual el método fue invocado. En el caso de un método de clase (static) el cerrojo esta en la clase.
  • 9. The keyword synchronized Si un hilo invoca un método de instancia sincronizado (respectivamente un método static) en un objeto, el cerrojo para el objeto ( respectivamente, la clase) se adquiere primero, luego el método es ejecutado y finalmente el cerrojo es liberado.
  • 10. The keyword synchronized Ud. Puede reescribir el programa para agregar un método sincronizado de instancia con el nombre addPenny en la clase PiggyBank. En este caso el cerrojo será un simple objeto PiggyBank, lo cual es suficiente para asegurar que un sólo hilo pueda ejecutar el método addPenny en cualquier momento. Ejercicio 15.11
  • 11. Synchronized Statements Al invocar un método sincronizado de un objeto se adquiere un cerrojo en el objeto y al invocar un método static sincronizado de una clase se adquiere el cerrojo en la clase.
  • 12. Synchronized Statements La sentencia synchronized puede ser usada para adquirir un cerrojo en cualquier objeto no sólo “this” cuando ejecutamos un bloque de código dentro del método.
  • 13. Synchronized Statements La forma general de la sentencia es: synchronized (expr) { }
  • 14. Synchronized Statements La expresión “expr” debe ser evaluada en la referencia del objeto. Si el objeto ya tiene un cerrojo de otro hilo, el hilo es bloqueado hasta que el cerrojo es liberado.
  • 15. Synchronized Statements Cuando un cerrojo es adquirido en un objeto las sentencias dentro del bloque sincronizado se ejecutan y luego el cerrojo es liberado.
  • 16. Synchronized Statements La sentencia synchronized le permite sincronizar parte del código dentro del método en lugar de todo el método. Esto mejora la concurrencia.
  • 17. Synchronized Statements La sentencia synchronized le permite adquirir un cerrojo en cualquier objeto de tal manera que UD. Puede sincronizar el acceso a un objeto en lugar de todo el método.
  • 18. Synchronized Statements cualquier método de instancia puede ser convertido en una sentencia synchronized. Suponga que tenemos el siguiente método de instancia: public synchronized void xxmethod(){ … method body }
  • 19. Synchronized Statements El método anterior es equivalente a: public void xxMethod(){ synchronized(this) { body } }