SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
UNIDAD IV: INVESTIGACION
Anel Verónica Sosa Mejía
8 DE MAYO DE 2016
ITSP
Ing. Enrique Ponce rivera
Contenido
Unidad IV Programación concurrente (Multihilo).......................................... 2
4.1. Concepto de hilo..................................................................................... 2
Estados de los Hilos:.................................................................................... 3
4.2Programas De Flujo Único......................................................................... 3
4.3Creacion y control de hilos ....................................................................... 3
4.4. Sincronización de hilos............................................................................ 5
Uso de métodos synchronized.................................................................... 5
Declaración synchronized ........................................................................... 5
BIBLIOGRAFIA ................................................................................................ 5
Unidad IV Programación concurrente (Multihilo)
4.1. Concepto de hilo.
Un programa multihilo contiene dos o más partes que se pueden ejecutar de manera concurrente o simultánea.
A cada parte del programa se le denomina como hilo (thread).
La programación multihilo es una forma especializada de multitarea.
Existe multitarea basada en procesos y basada en hilos.
Basada en procesos, permite que se puedan ejecutar dos o más programas a la vez de manera concurrente.
Multitarea basada en hilos es la unidad más pequeña de código que se puede seleccionar, de tal forma que
Un mismo programa puede realizar dos o más tareas de forma simultánea.
(Por ejemplo un editor puede dar formato y estar imprimiendo al mismo tiempo).
Estados de los Hilos:
- Nuevo (new): Este es el estado en que un hilo se encuentra después de que un objeto de la clase
Thread ha sido instanciado pero antes de que el método start()sea llamado.
- En ejecución (runnable): Este es el estado en que un hilo puede ser elegido para ser ejecutado por el
programador de hilos pero aún no está corriendo en el procesador. Se obtiene este estado
inmediatamente después de hacer la llamada al método start() de una instancia de la clase Thread.
- Ejecutándose (running): Este es el estado en el que el hilo está realizando lo que debe de hacer, es
decir, está realizando el trabajo para el cual fue diseñado.
- Esperando/bloqueado/dormido (waiting/blocked/sleeping): Es el estado en el cual el hilo está vivo aún
pero no es elegible para ser ejecutado, es decir, no está en ejecución pero puede estarlo nuevamente
si algún evento en particular sucede. Por ejemplo, un hilo puede estar durmiendo porque en el código
se le ha pedido que lo haga pero pasa a estado en ejecución cuando el tiempo que se le pidió dormir
ha expirado.
- Muerto (dead): Un hilo está muerto cuando se han completado todos los procesos y operaciones
contenidos en el método run(). Una vez que un hilo ha muerto NO puede volver nunca a estar vivo,
recordemos que no es posible llamar al método start() más de una vez para un solo hilo.
4.2Programas De Flujo Único
Un programa de flujo único, tarea única o mono -hilo (single- thread) utiliza un único flujo de control
(thread) para controlar su ejecución. Muchos programas no necesitan la potencia o utilidad de múltiples
tareas. Sin necesidad para especificar explícitamente que se quiere un único flujo de control, muchos
de los applets y aplicaciones son de flujo único.
4.3Creacion y control de hilos
En Java los hilos están encapsulados en la clase Thread. Para crear un hilo tenemos dos
posibilidades:
 Heredar de Thread redefiniendo el método run().
 Crear una clase que implemente la interfaz Runnable que nos obliga a definir el método run().
En ambos casos debemos definir un método run() que será el que contenga el código del hilo. Desde
dentro de este método podremos llamar a cualquier otro método de cualquier objeto, pero este
métodorun() será el método que se invoque cuando iniciemos la ejecución de un hilo. El hilo
terminará su ejecución cuando termine de ejecutarse este método run().
Para crear nuestro hilo mediante herencia haremos lo siguiente:
1
2
3
4
5
6
7
8
public class EjemploHilo extends Thread
{
public void run()()
{
// Código del hilo
}
}
Una vez definida la clase de nuestro hilo deberemos instanciarlo y ejecutarlo de la siguiente forma:
1
2
3
Thread t = new EjemploHilo();
t.start();
Al llamar al método start del hilo, comenzará ejecutarse su método run. Crear un hilo heredando deThread tiene el
problema de que al no haber herencia múltiple en Java, si heredamos de Thread no podremos heredar de ninguna
otra clase, y por lo tanto un hilo no podría heredar de ninguna otra clase.
Este problema desaparece si utilizamos la interfaz Runnable para crear el hilo, ya que una clase puede implementar
varios interfaces. Definiremos la clase que contenga el hilo como se muestra a continuación:
1
2
3
4
5
6
7
8
public class EjemploHilo implements Runnable
{
public void run()
{
// Código del hilo
}
}
Para instanciar y ejecutar un hilo de este tipo deberemos hacer lo siguiente:
1
2
3
Thread t = new Thread(new EjemploHilo());
t.start();
Esto es así debido a que en este caso EjemploHilo no deriva de una clase Thread, por lo que no se puede
considerar un hilo, lo único que estamos haciendo implementando la interfaz es asegurar que vamos a tener definido
el método run(). Con esto lo que haremos será proporcionar esta clase al constructor de la clase Thread, para que el
objeto Thread que creemos llame al método run() de la clase que hemos definido al iniciarse la ejecución del hilo, ya
que implementando la interfaz le aseguramos que esta función existe.
4.4. Sincronización de hilos
Cuando se están utilizando hilos múltiples, algunas veces es necesario coordinar las
actividades de dos o más. El proceso por el cual se logra esto se llama sincronización. La
razón más común para la sincronización es cuando dos o más hilos necesitan acceso a un
recurso compartido que sólo puede ser utilizado por un hilo a la vez. Otra razón para la
sincronización es cuando un hilo está esperando un evento causado por otro hilo. En este
caso, debe de haber algún medio por el cual el primer hilo se mantenga en estado
suspendido hasta que el evento ocurra.
La sincronización esta soportada por la palabra clave synchronized y por unos
cuantos métodos bien definidos que tienen todos los objetos.
Uso de métodos synchronized
Cuando se llama al método Synchronized , el hilo que llama ingresa al monitor de objeto, que
entonces bloquea el objeto. Mientras está bloqueado ningún otro hilo puede ingresar al método, ni
ingresar algún otro método sincronizado definido por el objeto. Cuando el hilo retorna del método, el
monitor desbloquea el objeto permitiendo que sea usado por el próximo hilo.
Los puntos clave de un método sincronizado son:
 Un método sincronizado se crea precediendo su declaración con synchronized.
 Para cualquier objeto dado, una vez un método sincronizado ha sido llamado se bloquea el
objeto, y los métodos no sincronizados dentro del mismo objeto pueden ser utilizados por otros hilos
en ejecución.
 Otros hilos que traten de llamar un objeto sincronizado en uso ingresaría en un estado de
espera, hasta que el objeto se desbloquea.
 Cuando un hilo sale del método sincronizado, el objeto se desbloquea.
Declaración synchronized
La creación del método Synchronized dentro de las clases creadas por nosotros mismos es fácil y
eficiente sin embargo no trabaja en todos los casos. Por ejemplo, podemos querer sincronizar el acceso
a algún método que no este modificado por Synchronized ; esto ocurre cuando queremos utilizar una
clase que no fue creada por nosotros sino por un tercero, y no tenemos acceso al código fuente.
La solución para este problema es poner llamadas a los métodos definidos por esa clase dentro de
un bloque Synchronized.
BIBLIOGRAFIA
Fundamentos de programación en java 2 Autor: Schildt, Herbert Mc Graw Hill
Programacion concurrente

Más contenido relacionado

La actualidad más candente

Multithreading In Java
Multithreading In JavaMultithreading In Java
Multithreading In Javaparag
 
Servlet vs Reactive Stacks in 5 Use Cases
Servlet vs Reactive Stacks in 5 Use CasesServlet vs Reactive Stacks in 5 Use Cases
Servlet vs Reactive Stacks in 5 Use CasesVMware Tanzu
 
Patron de diseño iterator
Patron de diseño iteratorPatron de diseño iterator
Patron de diseño iteratorDaniel Santillan
 
Polimorfismo resumen
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumenwouyrmz
 
Wahtsapp business cuenta verificada
Wahtsapp business cuenta verificadaWahtsapp business cuenta verificada
Wahtsapp business cuenta verificadaLink to WhatsApp
 
Modelo de datos facturacion
Modelo de datos facturacionModelo de datos facturacion
Modelo de datos facturacionLizgcc
 
Tema 2 Arquitectura De Redes
Tema 2 Arquitectura De RedesTema 2 Arquitectura De Redes
Tema 2 Arquitectura De Redesriveroloja
 
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsqlRicardo Riquelme Pinto
 
Conceptos básicos del shell
Conceptos básicos del shellConceptos básicos del shell
Conceptos básicos del shellgschuldt23
 

La actualidad más candente (20)

Multithreading In Java
Multithreading In JavaMultithreading In Java
Multithreading In Java
 
Servlet vs Reactive Stacks in 5 Use Cases
Servlet vs Reactive Stacks in 5 Use CasesServlet vs Reactive Stacks in 5 Use Cases
Servlet vs Reactive Stacks in 5 Use Cases
 
Patron de diseño iterator
Patron de diseño iteratorPatron de diseño iterator
Patron de diseño iterator
 
Polimorfismo resumen
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumen
 
Principios poo
Principios pooPrincipios poo
Principios poo
 
Java OCA teoria 4
Java OCA teoria 4Java OCA teoria 4
Java OCA teoria 4
 
Dispositivos de Redes
Dispositivos de RedesDispositivos de Redes
Dispositivos de Redes
 
Wahtsapp business cuenta verificada
Wahtsapp business cuenta verificadaWahtsapp business cuenta verificada
Wahtsapp business cuenta verificada
 
Modelo de datos facturacion
Modelo de datos facturacionModelo de datos facturacion
Modelo de datos facturacion
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
 
Tema 2 Arquitectura De Redes
Tema 2 Arquitectura De RedesTema 2 Arquitectura De Redes
Tema 2 Arquitectura De Redes
 
Buscador yandex
Buscador yandexBuscador yandex
Buscador yandex
 
Soap, wsdl et uddi
Soap, wsdl et uddiSoap, wsdl et uddi
Soap, wsdl et uddi
 
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
1.2.2 incorporando sentencias dml y funciones sql a bloques plsql
 
ESTRUCTURAS SELECTIVAS (1).pdf
ESTRUCTURAS SELECTIVAS (1).pdfESTRUCTURAS SELECTIVAS (1).pdf
ESTRUCTURAS SELECTIVAS (1).pdf
 
Conceptos básicos del shell
Conceptos básicos del shellConceptos básicos del shell
Conceptos básicos del shell
 
Herencia
HerenciaHerencia
Herencia
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
 

Destacado

Market Report 2015-Industrial Q4
Market Report 2015-Industrial Q4Market Report 2015-Industrial Q4
Market Report 2015-Industrial Q4Allison Seeley
 
Interaktiv oppgave for de minste
Interaktiv oppgave for de minsteInteraktiv oppgave for de minste
Interaktiv oppgave for de minstebritnon
 
Corporate Overview- 2016 AS
Corporate Overview- 2016 ASCorporate Overview- 2016 AS
Corporate Overview- 2016 ASAllison Seeley
 
Presentation of Turkey-Afghanistan Relations
Presentation of Turkey-Afghanistan RelationsPresentation of Turkey-Afghanistan Relations
Presentation of Turkey-Afghanistan Relationskyzjibek
 
Market Report 2016 Q1 Industrial Final
Market Report 2016 Q1 Industrial FinalMarket Report 2016 Q1 Industrial Final
Market Report 2016 Q1 Industrial FinalAllison Seeley
 
Industrial Spotlight 2016 FINAL 10.13.16
Industrial Spotlight 2016 FINAL 10.13.16Industrial Spotlight 2016 FINAL 10.13.16
Industrial Spotlight 2016 FINAL 10.13.16Allison Seeley
 
Bab 7 radiasi benda hitam
Bab 7 radiasi benda hitamBab 7 radiasi benda hitam
Bab 7 radiasi benda hitamAriq Zmc
 
What's the profile of a data scientist?
What's the profile of a data scientist? What's the profile of a data scientist?
What's the profile of a data scientist? BICC Thomas More
 
Legal protection of computer software
Legal protection of computer softwareLegal protection of computer software
Legal protection of computer softwareOlli Pitkänen
 
Leaflet privacy workshop
Leaflet privacy workshopLeaflet privacy workshop
Leaflet privacy workshopSebyde
 
TranPham Entrants 30DEC2016
TranPham Entrants 30DEC2016TranPham Entrants 30DEC2016
TranPham Entrants 30DEC2016Tuan TRANPHAM
 
KoçLuk&MentöRlüK
KoçLuk&MentöRlüKKoçLuk&MentöRlüK
KoçLuk&MentöRlüKfahricelik
 

Destacado (18)

Radiant Stone Care
Radiant Stone CareRadiant Stone Care
Radiant Stone Care
 
Market Report 2015-Industrial Q4
Market Report 2015-Industrial Q4Market Report 2015-Industrial Q4
Market Report 2015-Industrial Q4
 
Interaktiv oppgave for de minste
Interaktiv oppgave for de minsteInteraktiv oppgave for de minste
Interaktiv oppgave for de minste
 
Corporate Overview- 2016 AS
Corporate Overview- 2016 ASCorporate Overview- 2016 AS
Corporate Overview- 2016 AS
 
Presentation of Turkey-Afghanistan Relations
Presentation of Turkey-Afghanistan RelationsPresentation of Turkey-Afghanistan Relations
Presentation of Turkey-Afghanistan Relations
 
Oficina do caic
Oficina do caicOficina do caic
Oficina do caic
 
Market Report 2016 Q1 Industrial Final
Market Report 2016 Q1 Industrial FinalMarket Report 2016 Q1 Industrial Final
Market Report 2016 Q1 Industrial Final
 
Industrial Spotlight 2016 FINAL 10.13.16
Industrial Spotlight 2016 FINAL 10.13.16Industrial Spotlight 2016 FINAL 10.13.16
Industrial Spotlight 2016 FINAL 10.13.16
 
Designing Network Codes
Designing Network CodesDesigning Network Codes
Designing Network Codes
 
Bab 7 radiasi benda hitam
Bab 7 radiasi benda hitamBab 7 radiasi benda hitam
Bab 7 radiasi benda hitam
 
What's the profile of a data scientist?
What's the profile of a data scientist? What's the profile of a data scientist?
What's the profile of a data scientist?
 
Legal protection of computer software
Legal protection of computer softwareLegal protection of computer software
Legal protection of computer software
 
Leaflet privacy workshop
Leaflet privacy workshopLeaflet privacy workshop
Leaflet privacy workshop
 
TranPham Entrants 30DEC2016
TranPham Entrants 30DEC2016TranPham Entrants 30DEC2016
TranPham Entrants 30DEC2016
 
KoçLuk&MentöRlüK
KoçLuk&MentöRlüKKoçLuk&MentöRlüK
KoçLuk&MentöRlüK
 
Media pembelajaran interaktif
Media pembelajaran interaktifMedia pembelajaran interaktif
Media pembelajaran interaktif
 
Communicator Draft 7
Communicator Draft 7Communicator Draft 7
Communicator Draft 7
 
Arijit
ArijitArijit
Arijit
 

Similar a Programacion concurrente

Tema 12 hilos en java por gio
Tema 12   hilos en java por gioTema 12   hilos en java por gio
Tema 12 hilos en java por gioRobert Wolf
 
Clase9 threads
Clase9 threadsClase9 threads
Clase9 threadsjorg_marq
 
2o departamental Programacion 3
2o departamental Programacion 32o departamental Programacion 3
2o departamental Programacion 3Leonardo Moreno
 
SCJP, Clase 9: Threads
SCJP, Clase 9: ThreadsSCJP, Clase 9: Threads
SCJP, Clase 9: Threadsflekoso
 
Programación multihebra en java
Programación multihebra en javaProgramación multihebra en java
Programación multihebra en javaLaboratorios ACME
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitareabowelmx
 
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) v1Oscar V
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteJosé Antonio Sandoval Acosta
 
DIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdfDIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdfDaveParker23
 
Revista java world cap 8,9,10
Revista java world cap 8,9,10Revista java world cap 8,9,10
Revista java world cap 8,9,10Hack '
 
DefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJavaDefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJavaDanielCorzo12
 

Similar a Programacion concurrente (20)

Hilos
HilosHilos
Hilos
 
Chap 15apin
Chap 15apinChap 15apin
Chap 15apin
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Chap 15fpin
Chap 15fpinChap 15fpin
Chap 15fpin
 
Tema 12 hilos en java por gio
Tema 12   hilos en java por gioTema 12   hilos en java por gio
Tema 12 hilos en java por gio
 
Clase9 threads
Clase9 threadsClase9 threads
Clase9 threads
 
2o departamental Programacion 3
2o departamental Programacion 32o departamental Programacion 3
2o departamental Programacion 3
 
SCJP, Clase 9: Threads
SCJP, Clase 9: ThreadsSCJP, Clase 9: Threads
SCJP, Clase 9: Threads
 
Programación multihebra en java
Programación multihebra en javaProgramación multihebra en java
Programación multihebra en java
 
Multitarea
MultitareaMultitarea
Multitarea
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
 
Threads
ThreadsThreads
Threads
 
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
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
DIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdfDIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdf
 
Java Threads (Hilos en Java)
Java Threads (Hilos en Java)Java Threads (Hilos en Java)
Java Threads (Hilos en Java)
 
Lab5 guia
Lab5 guiaLab5 guia
Lab5 guia
 
Revista java world cap 8,9,10
Revista java world cap 8,9,10Revista java world cap 8,9,10
Revista java world cap 8,9,10
 
DefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJavaDefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJava
 

Más de Anel Sosa

Codigo Visual Studio: Galeria de imagenes
Codigo Visual Studio: Galeria de imagenesCodigo Visual Studio: Galeria de imagenes
Codigo Visual Studio: Galeria de imagenesAnel Sosa
 
Comandos sql
Comandos sql Comandos sql
Comandos sql Anel Sosa
 
Codigo ensamblador
Codigo ensamblador Codigo ensamblador
Codigo ensamblador Anel Sosa
 
INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”
INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”
INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”Anel Sosa
 
APLICACIONES DE LAS ECUACIONES DIFERENCIALES
APLICACIONES DE LAS ECUACIONES DIFERENCIALESAPLICACIONES DE LAS ECUACIONES DIFERENCIALES
APLICACIONES DE LAS ECUACIONES DIFERENCIALESAnel Sosa
 
SISTEMA OPERATIVOS
SISTEMA OPERATIVOSSISTEMA OPERATIVOS
SISTEMA OPERATIVOSAnel Sosa
 
INVESTIGACIÓN DE CHIPSET
INVESTIGACIÓN DE CHIPSET INVESTIGACIÓN DE CHIPSET
INVESTIGACIÓN DE CHIPSET Anel Sosa
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incrementalAnel Sosa
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion Anel Sosa
 
Escenario socioeconomico
Escenario socioeconomicoEscenario socioeconomico
Escenario socioeconomicoAnel Sosa
 
Investigacion calculo derivadas e integrales
Investigacion calculo derivadas e integralesInvestigacion calculo derivadas e integrales
Investigacion calculo derivadas e integralesAnel Sosa
 
Lenguajes de simulacion
Lenguajes de simulacionLenguajes de simulacion
Lenguajes de simulacionAnel Sosa
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflapAnel Sosa
 
Panuco Veracruz
Panuco Veracruz Panuco Veracruz
Panuco Veracruz Anel Sosa
 
que es un Curriculum
que es un Curriculumque es un Curriculum
que es un CurriculumAnel Sosa
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Programa expresiones regulares
Programa expresiones regularesPrograma expresiones regulares
Programa expresiones regularesAnel Sosa
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARESAnel Sosa
 

Más de Anel Sosa (20)

Codigo Visual Studio: Galeria de imagenes
Codigo Visual Studio: Galeria de imagenesCodigo Visual Studio: Galeria de imagenes
Codigo Visual Studio: Galeria de imagenes
 
Comandos sql
Comandos sql Comandos sql
Comandos sql
 
Codigo ensamblador
Codigo ensamblador Codigo ensamblador
Codigo ensamblador
 
INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”
INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”
INVESTIGACION “SOLUCION DE SISTEMAS DE ECUACIONES: METODO DE JACOBY”
 
APLICACIONES DE LAS ECUACIONES DIFERENCIALES
APLICACIONES DE LAS ECUACIONES DIFERENCIALESAPLICACIONES DE LAS ECUACIONES DIFERENCIALES
APLICACIONES DE LAS ECUACIONES DIFERENCIALES
 
SISTEMA OPERATIVOS
SISTEMA OPERATIVOSSISTEMA OPERATIVOS
SISTEMA OPERATIVOS
 
INVESTIGACIÓN DE CHIPSET
INVESTIGACIÓN DE CHIPSET INVESTIGACIÓN DE CHIPSET
INVESTIGACIÓN DE CHIPSET
 
SIMMAN 3G
SIMMAN 3GSIMMAN 3G
SIMMAN 3G
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incremental
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion
 
Escenario socioeconomico
Escenario socioeconomicoEscenario socioeconomico
Escenario socioeconomico
 
Investigacion calculo derivadas e integrales
Investigacion calculo derivadas e integralesInvestigacion calculo derivadas e integrales
Investigacion calculo derivadas e integrales
 
Lenguajes de simulacion
Lenguajes de simulacionLenguajes de simulacion
Lenguajes de simulacion
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
 
Panuco Veracruz
Panuco Veracruz Panuco Veracruz
Panuco Veracruz
 
que es un Curriculum
que es un Curriculumque es un Curriculum
que es un Curriculum
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Programa expresiones regulares
Programa expresiones regularesPrograma expresiones regulares
Programa expresiones regulares
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 

Último

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 

Último (20)

Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 

Programacion concurrente

  • 1. UNIDAD IV: INVESTIGACION Anel Verónica Sosa Mejía 8 DE MAYO DE 2016 ITSP Ing. Enrique Ponce rivera
  • 2. Contenido Unidad IV Programación concurrente (Multihilo).......................................... 2 4.1. Concepto de hilo..................................................................................... 2 Estados de los Hilos:.................................................................................... 3 4.2Programas De Flujo Único......................................................................... 3 4.3Creacion y control de hilos ....................................................................... 3 4.4. Sincronización de hilos............................................................................ 5 Uso de métodos synchronized.................................................................... 5 Declaración synchronized ........................................................................... 5 BIBLIOGRAFIA ................................................................................................ 5
  • 3. Unidad IV Programación concurrente (Multihilo) 4.1. Concepto de hilo. Un programa multihilo contiene dos o más partes que se pueden ejecutar de manera concurrente o simultánea. A cada parte del programa se le denomina como hilo (thread). La programación multihilo es una forma especializada de multitarea. Existe multitarea basada en procesos y basada en hilos. Basada en procesos, permite que se puedan ejecutar dos o más programas a la vez de manera concurrente. Multitarea basada en hilos es la unidad más pequeña de código que se puede seleccionar, de tal forma que Un mismo programa puede realizar dos o más tareas de forma simultánea. (Por ejemplo un editor puede dar formato y estar imprimiendo al mismo tiempo).
  • 4. Estados de los Hilos: - Nuevo (new): Este es el estado en que un hilo se encuentra después de que un objeto de la clase Thread ha sido instanciado pero antes de que el método start()sea llamado. - En ejecución (runnable): Este es el estado en que un hilo puede ser elegido para ser ejecutado por el programador de hilos pero aún no está corriendo en el procesador. Se obtiene este estado inmediatamente después de hacer la llamada al método start() de una instancia de la clase Thread. - Ejecutándose (running): Este es el estado en el que el hilo está realizando lo que debe de hacer, es decir, está realizando el trabajo para el cual fue diseñado. - Esperando/bloqueado/dormido (waiting/blocked/sleeping): Es el estado en el cual el hilo está vivo aún pero no es elegible para ser ejecutado, es decir, no está en ejecución pero puede estarlo nuevamente si algún evento en particular sucede. Por ejemplo, un hilo puede estar durmiendo porque en el código se le ha pedido que lo haga pero pasa a estado en ejecución cuando el tiempo que se le pidió dormir ha expirado. - Muerto (dead): Un hilo está muerto cuando se han completado todos los procesos y operaciones contenidos en el método run(). Una vez que un hilo ha muerto NO puede volver nunca a estar vivo, recordemos que no es posible llamar al método start() más de una vez para un solo hilo. 4.2Programas De Flujo Único Un programa de flujo único, tarea única o mono -hilo (single- thread) utiliza un único flujo de control (thread) para controlar su ejecución. Muchos programas no necesitan la potencia o utilidad de múltiples tareas. Sin necesidad para especificar explícitamente que se quiere un único flujo de control, muchos de los applets y aplicaciones son de flujo único. 4.3Creacion y control de hilos En Java los hilos están encapsulados en la clase Thread. Para crear un hilo tenemos dos posibilidades:  Heredar de Thread redefiniendo el método run().  Crear una clase que implemente la interfaz Runnable que nos obliga a definir el método run(). En ambos casos debemos definir un método run() que será el que contenga el código del hilo. Desde dentro de este método podremos llamar a cualquier otro método de cualquier objeto, pero este métodorun() será el método que se invoque cuando iniciemos la ejecución de un hilo. El hilo terminará su ejecución cuando termine de ejecutarse este método run().
  • 5. Para crear nuestro hilo mediante herencia haremos lo siguiente: 1 2 3 4 5 6 7 8 public class EjemploHilo extends Thread { public void run()() { // Código del hilo } } Una vez definida la clase de nuestro hilo deberemos instanciarlo y ejecutarlo de la siguiente forma: 1 2 3 Thread t = new EjemploHilo(); t.start(); Al llamar al método start del hilo, comenzará ejecutarse su método run. Crear un hilo heredando deThread tiene el problema de que al no haber herencia múltiple en Java, si heredamos de Thread no podremos heredar de ninguna otra clase, y por lo tanto un hilo no podría heredar de ninguna otra clase. Este problema desaparece si utilizamos la interfaz Runnable para crear el hilo, ya que una clase puede implementar varios interfaces. Definiremos la clase que contenga el hilo como se muestra a continuación: 1 2 3 4 5 6 7 8 public class EjemploHilo implements Runnable { public void run() { // Código del hilo } } Para instanciar y ejecutar un hilo de este tipo deberemos hacer lo siguiente: 1 2 3 Thread t = new Thread(new EjemploHilo()); t.start(); Esto es así debido a que en este caso EjemploHilo no deriva de una clase Thread, por lo que no se puede considerar un hilo, lo único que estamos haciendo implementando la interfaz es asegurar que vamos a tener definido el método run(). Con esto lo que haremos será proporcionar esta clase al constructor de la clase Thread, para que el objeto Thread que creemos llame al método run() de la clase que hemos definido al iniciarse la ejecución del hilo, ya que implementando la interfaz le aseguramos que esta función existe.
  • 6. 4.4. Sincronización de hilos Cuando se están utilizando hilos múltiples, algunas veces es necesario coordinar las actividades de dos o más. El proceso por el cual se logra esto se llama sincronización. La razón más común para la sincronización es cuando dos o más hilos necesitan acceso a un recurso compartido que sólo puede ser utilizado por un hilo a la vez. Otra razón para la sincronización es cuando un hilo está esperando un evento causado por otro hilo. En este caso, debe de haber algún medio por el cual el primer hilo se mantenga en estado suspendido hasta que el evento ocurra. La sincronización esta soportada por la palabra clave synchronized y por unos cuantos métodos bien definidos que tienen todos los objetos. Uso de métodos synchronized Cuando se llama al método Synchronized , el hilo que llama ingresa al monitor de objeto, que entonces bloquea el objeto. Mientras está bloqueado ningún otro hilo puede ingresar al método, ni ingresar algún otro método sincronizado definido por el objeto. Cuando el hilo retorna del método, el monitor desbloquea el objeto permitiendo que sea usado por el próximo hilo. Los puntos clave de un método sincronizado son:  Un método sincronizado se crea precediendo su declaración con synchronized.  Para cualquier objeto dado, una vez un método sincronizado ha sido llamado se bloquea el objeto, y los métodos no sincronizados dentro del mismo objeto pueden ser utilizados por otros hilos en ejecución.  Otros hilos que traten de llamar un objeto sincronizado en uso ingresaría en un estado de espera, hasta que el objeto se desbloquea.  Cuando un hilo sale del método sincronizado, el objeto se desbloquea. Declaración synchronized La creación del método Synchronized dentro de las clases creadas por nosotros mismos es fácil y eficiente sin embargo no trabaja en todos los casos. Por ejemplo, podemos querer sincronizar el acceso a algún método que no este modificado por Synchronized ; esto ocurre cuando queremos utilizar una clase que no fue creada por nosotros sino por un tercero, y no tenemos acceso al código fuente. La solución para este problema es poner llamadas a los métodos definidos por esa clase dentro de un bloque Synchronized. BIBLIOGRAFIA Fundamentos de programación en java 2 Autor: Schildt, Herbert Mc Graw Hill