(Aula 17) Threads em Java

Tamanho: px
Começar a partir da página:

Download "(Aula 17) Threads em Java"

Transcrição

1 (Aula 17) Threads em Java

2 Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend Implementandoa D. Criarum CostaLPRM/DI/UFES JVM daclassethread. nova sósuportaum JVM novo p/ rodaro processoemjava interface novo Runnable. 2processo implicaemcriaruma Sistemas Operacionais 2008/1 Java Threads

3 Especificação API JVM: Java MáquinaVirtual da linguagem Javade programação Java Componentes: Profa. Patrícia JVM: D. CostaLPRM/DI/UFES 3 Sistemas Operacionais 2008/1

4 Programas A independentes JVM Java compilados são bytecodes Carregador plataforma de execução da Verificador Interpretador JVM consiste de runtime classes de: (Class (Runtime verifier) loader) interpreter) Profa. Patrícia D. CostaLPRM/DI/UFES 4 Sistemas Operacionais 2008/1 JVM

5 Toda Do thread aplicação (sem considerar Java tem o pelo system menos thread) uma A começa thread. main ponto thread com de vista uma cria thread, do novas desenvolvedor, threads. chamada de o main programa Profa. Patrícia D. CostaLPRM/DI/UFES 5 Sistemas Operacionais 2008/1 Java Threads

6 Cada Duas classe thread: thread é associada com uma instância da Instanciando Thread. Delegando estratégicas possíveis para criar uma executor (high-level criação/gerência a classe Thread; concurrency da thread objects) para Profa. Patrícia D. CostaLPRM/DI/UFES 6 Sistemas Operacionais 2008/1 Java Threads (2)

7 A Passando fornecer da aplicação classe o Thread: um código que objeto cria a ser instância Runnable executado de para Thread na o thread. construtor deve Profa. Patrícia D. CostaLPRM/DI/UFES 7 Sistemas Operacionais 2008/1 public class HelloRunnable implements Runnable { Exemplo de criação de Thread em Java public void run() { System.out.println("Hello from a thread!"); public static void main(string args[]) { (new Thread(new HelloRunnable())).start();

8 Fazendo subclass de Thread (que também (2) Exemplo de criação de em Java implementa Runnable) public class HelloThread extends Thread { Profa. Patrícia D. CostaLPRM/DI/UFES System.out.println("Hello 8 from a thread!"); Sistemas Operacionais 2008/1 public void run() { public static void main(string args[]) { (new HelloThread()).start();

9 run(): start(): umathread. é tambémtermina. o métodoqueexecutaas Quandoestemétodofinaliza, atividadesde a sleep(intx): thread. antes métodoquedisparaa execuçãode uma dormirporx de Este terminar. métodoquecolocaa métodochamao milisegundos. métodorun( thread para ) Profa. Patrícia D. CostaLPRM/DI/UFES 9 Sistemas Operacionais 2008/1 Principais métodos da Classe Thread

10 10 join( interrupt( paraqualfoienviadaa ): métodoqueesperao mensagemparaser términodathread interrupted( liberada. de estáounãointerrompida. umathread. ): métodoqueinterrompea ): métodoquetestase umathread execução Profa. Patrícia D. CostaLPRM/DI/UFES 10 Sistemas Operacionais 2008/1 Principais métodos da Classe Thread

11 11 Estados da thread nascimento Término do tempo de dormida start( ) notify( ) pronta Profa. Patrícia D. CostaLPRM/DI/UFES 11 Sistemas Operacionais 2008/1 esperando dormindo morta bloqueada notifyall( ) wait( ) sleep( ) run( ) executando Alocar um processador E/S Fim do Método run( ) Fim da E/S

12 12 O Sessão controle de execução sessões críticas em Java é Thread garantido thread por um mecanismo de monitores execução; de código (RC) é executada por apenas uma tiver em que permissão, um deseja determinado executar região instante a RC, bloqueando pede tempo permissão entrada para para Profa. Patrícia Se outras D. CostaLPRM/DI/UFES bloqueia não threads tiver até a liberar permissão (outra thread está executando), 12 Sistemas Operacionais 2008/1 Sincronização de Threads em Java

13 13 Hansen, Baseada na abordagem de Profa. Patrícia existe. mas sem garantias que uma que waitingthreadentraráno Portanto, um signal éapenas monitor! checar espera) indicação (para os processos uma D. estão CostaLPRM/DI/UFES Isto executar a condição esperando significa que o no estado antes que monitor. devem os começar desejado processos sempre a Monitores em Java 13 Sistemas Operacionais 2008/1

14 14 Todos Objetos Para monitores os e objetos classes Java possuem são potencialmente um lock intrínseco O fazer chamada a algum método um Profa. Patrícia A objeto lock compartilhado (monitor), deve-se obter o D. lock CostaLPRM/DI/UFES palavra mesmo de um synchronizedé para objeto métodos monitor de classe (static) 14usada (ou classe) para se Sistemas obter java Operacionais o 2008/1 Sincronização de Threads em Java (cont.)

15 15 Classe Objeto Bloco de código Granularidade de Sincronização Profa. Patrícia D. CostaLPRM/DI/UFES 15 Sistemas Operacionais 2008/1

16 16 Garante classe um (synchronized) (static que apenas method) método uma thread no escopo vai executar de uma Sincronização de Classe class Buffer { initialize { p = new Pilha(); Profa. Patrícia D. CostaLPRM/DI/UFES 16 Sistemas Operacionais 2008/1 private static Pilha p; public Buffer(){ syncronized static public void Insere( Object _o ) { p.push( _o ); syncronized static public Object Retira() { return p.pop();

17 17 Garante objeto um (synchronized) que apenas método uma thread no escopo vai executar de um Sincronização de Objeto class Buffer { Profa. Patrícia D. CostaLPRM/DI/UFES 17 Sistemas Operacionais 2008/1 syncronized public void Insere( Object _o ) { private Pilha p; public Buffer(){ p = new Pilha(); p.push( _o ); syncronized public Object Retira() { return p.pop();

18 18 Garante É garantir conjunto usado exclusão um que de objeto instruções apenas mútua auxiliar uma definidas thread (e.x. this) dentro vai executar para do bloco o Sincronização de Bloco class Buffer { Profa. Patrícia D. CostaLPRM/DI/UFES private Pilha p; public Buffer(){ p = new Pilha(); public void Insere( Object _o ) { syncronized(this) { p.push( _o ); syncronized public Object Retira() 18 Sistemas Operacionais 2008/1 { Object aux; syncronized(this) { aux = p.pop(); return aux;

19 19 Sincronização São exclusão usados mútua de objetos Bloco (interleave) auxiliares (métodos entre distintos independentes) métodos para evitar public class MsLunch { private long c1 = 0; private long c2 = 0; private Object lock1 = new Object(); private Object lock2 = new Profa. Patrícia D. CostaLPRM/DI/UFES 19 Object(); Sistemas Operacionais 2008/1 public void inc1() { synchronized(lock1){ c1++; public void inc2() { synchronized(lock2){ c2++;

20 20 Uma Mas thread não está Permite com uma outra thread pode obter um lock que ela já Evita possui outro Profa. Patrícia D. mesma que método um uma método também thread (synchronized) cause o bloqueio chamar de si CostaLPRM/DI/UFES 20 Sistemas Operacionais 2008/1 Sincronização Reentrante

21 21 Usados Um guarded para coordenar block começa as ações perguntando das threads (polling) se Guarded Blocks uma condição é verdadeira // joy é uma variável compartilhada Profa. Patrícia D. CostaLPRM/DI/UFES 21 Sistemas Operacionais 2008/1 catch (InterruptedException e) { public synchronized guardedjoy(){ while(!joy){ try { wait(); /* bloqueia a thread até algum evento ser notificado. Note que pode ser qualquer evento, não necessariamente o que esperamos */ System.out.println("Joy and efficiency have been achieved!");

22 22 Sempre use wait dentro de um loop que testa a Mesmo condição esperada foi satisfeita (Abordagem de Hansen). esperando, Não assuma que a interrupção foi para a condição mesma específica que quando que pode o evento estávamos a ser thread que tenha ganhar a esperando condição sido o permissão que não estávamos seja de mais executar a Profa. Patrícia D. CostaLPRM/DI/UFES 22 Sistemas Operacionais 2008/1 Guarded Blocks (cont)

23 23 Quando Executar uma thread executa o.wait, ela precisa ter o Quando lock uma intrínseco do objeto o e suspende maneira uma o wait a thread simples execução dentro chama de de obter um o wait, método o lock a thread synchronized libera o é lock Profa. Patrícia D. CostaLPRM/DI/UFES 23 Sistemas Operacionais 2008/1 Wait

24 24 Uma esperando o.notifyall, outra por thread que aquele informa lock obtenha a todas que algo o as lock threads importante vai chamar que estejam Profa. Patrícia D. CostaLPRM/DI/UFES 24 Sistemas Operacionais 2008/1 aconteceu public synchronized notifyjoy(){ NotifyAll (cont.) joy = true; notifyall();

25 25 Exemplo dos Filósofos class DiningServer { private boolean checkstarving = false; private int numphils = 0; private int[] state = null; private static final int THINKING = 0, HUNGRY = 1, STARVING = 2, EATING = 3; Profa. Patrícia D. CostaLPRM/DI/UFES 25 Sistemas Operacionais 2008/1 private final int left(int i) { return (numphils + i - 1) % numphils; public DiningServer(int numphils, boolean checkstarving) { this.numphils = numphils; this.checkstarving = checkstarving; state = new int[numphils]; for (int i = 0; i < numphils; i++) state[i] = THINKING; System.out.println("DiningServer: checkstarving=" + checkstarving); private final int right(int i) { return (i + 1) % numphils;

26 26 Exemplo dos Filósofos (cont.) private void seeifstarving(int k) { if (state[k] == HUNGRY && state[left(k)]!= STARVING && state[right(k)]!= STARVING) { state[k] = STARVING; System.out.println("philosopher " + k + " is STARVING"); private void test(int k, boolean checkstarving) Profa. Patrícia D. CostaLPRM/DI/UFES 26 { Sistemas Operacionais 2008/1 if (state[left(k)]!= EATING && state[left(k)]!= STARVING && (state[k] == HUNGRY state[k] == STARVING) && state[right(k)]!= STARVING && state[right(k)]!= EATING) state[k] = EATING; else if (checkstarving) seeifstarving(k); // simplistic naive check for starvation

27 27 Exemplos public synchronized void takeforks(int i) { state[i] = HUNGRY; test(i, false); while (state[i]!= EATING) try {wait(); catch (InterruptedException e) { Profa. Patrícia D. CostaLPRM/DI/UFES public synchronized void putforks(int i) { state[i] = THINKING; test(left(i), checkstarving); test(right(i), checkstarving); notifyall(); 27 Sistemas Operacionais 2008/1

Threads em Java. Java Threads. Java Componentes: JVM JVM:

Threads em Java. Java Threads. Java Componentes: JVM JVM: Threads em Java (Aula 17) Java Threads Difícil de classificar com user thread ou kernel thread As threads Java são gerenciadas pela JVM. Threads em Java podem ser criadas das seguintes maneiras: Fazendo

Leia mais

(Aula 15) Threads e Threads em Java

(Aula 15) Threads e Threads em Java (Aula 15) Threads e Threads em Java Um fluxo computacional. A programa maioria de execução, dos seqüencial programas o qual simples consiste realiza tem uma de essa um certa único tarefa Grande característica:

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

Threads e Concorrência em Java (Material de Apoio)

Threads e Concorrência em Java (Material de Apoio) Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto

Leia mais

Programação Concorrente em java - Exercícios Práticos Abril 2004

Programação Concorrente em java - Exercícios Práticos Abril 2004 Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente

Leia mais

Fundamentos de Programaçã. ção Concorrente

Fundamentos de Programaçã. ção Concorrente Java 2 Standard Edition Fundamentos de Programaçã ção Concorrente Helder da Rocha www.argonavis.com.br 1 Programação concorrente O objetivo deste módulo é oferecer uma introdução a Threads que permita

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Java Threads. Introdução

Java Threads. Introdução Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização

Leia mais

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Multithreading 154 Objectivos Ser capaz de: Explicar os conceitos básicos de multithreading Criar threads múltiplos

Leia mais

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Threads Threads Threads Threads Professor: César Melo Slides baseados

Leia mais

Introdução a Threads Java

Introdução a Threads Java Introdução a Threads Java Prof. Gerson Geraldo Homrich Cavalheiro Universidade Federal de Pelotas Departamento de Informática Instituto de Física e Matemática Pelotas RS Brasil http://gersonc.anahy.org

Leia mais

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado Threads em Java Sistemas Operacionais - Laboratório Professor Machado 1 Conceitos de Programação Concorrente Uma unidade concorrente é um componente de um programa que não exige a execução seqüencial,

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos

Universidade da Beira Interior. Sistemas Distribuídos Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra

Leia mais

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Programação Concorrente em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM O que é programação concorrente? Um programa, múltiplos fluxos de execução Quando usar programação concorrente? Desempenho Ex.:

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Universidade Federal da Paraíba

Universidade Federal da Paraíba Universidade Federal da Paraíba Mestrado em Informática Fora de Sede Universidade Tiradentes Aracaju - Sergipe Disciplina Sistemas Operacionais Professor Jacques Philippe Sauvé Aluno José Maria Rodrigues

Leia mais

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar Projeto Integrador Sistemas Operacionais Prof.ª Lucilia Ribeiro GTI 3 Noturno Grupo: Anderson Alves da Mota. André Luiz Silva. Misael bezerra dos santos. Sandro de almeida silva. Analisar os sistemas operacionais

Leia mais

Programação Orientada a Objetos Threads

Programação Orientada a Objetos Threads Threads Prof. Edwar Saliba Júnior Janeiro de 2013 1 Introdução Multithreading: fornece múltiplas threads de execução para a aplicação; permite que programas realizem tarefas concorrentemente; às vezes

Leia mais

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas Operacionais Sincronização de Processos (aula 5 Parte 2) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Semáforos Monitores Passagem de Mensagem Exemplos em S.O.

Leia mais

Introdução ao uso de Threads em Java

Introdução ao uso de Threads em Java Introdução ao uso de Threads em Java Daniel de Angelis Cordeiro danielc@ime.usp.br 26 de março de 2004 Sumário 1 Introdução 1 1.1 O que são threads?............................... 1 1.2 Todo programa em

Leia mais

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 08: Sincronização de Processos Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o problema da seção crítica, cujas soluções podem ser usadas

Leia mais

Java : Comunicação Cliente-Servidor.

Java : Comunicação Cliente-Servidor. Java : Comunicação Cliente-Servidor. Objetivo: Capacitar o aluno a desenvolver uma aplicação servidora para múltiplos clientes. Apresentar as classes Socket e ServerSocket, classes de fluxo de dados, a

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Sistemas Operacionais

Sistemas Operacionais AULA 09 Sincronização de Processos - II Monitores Conforme comentamos, o uso equivocado dos semáforos pode levar a uma situação de deadlock, por isso devemos tomar cuidado ao programar utilizando este

Leia mais

Threads. Linguagem Java. Adenilso da Silva Simão 17/05/05

Threads. Linguagem Java. Adenilso da Silva Simão 17/05/05 17/05/05 Uma thread é uma linha de execução dentro de um programa Conceito de SO Java implementa suporte nativo a threads Duas formas de se implementar Implementando a interface Runnable Deve-se sobrepor

Leia mais

Aula 30 - Sockets em Java

Aula 30 - Sockets em Java Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Padrões de Projeto. Singleton

Padrões de Projeto. Singleton Padrões de Projeto Padrões de Criação Singleton Singleton Assegura que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela 2 Livro Texto: Design Pattern - Elements 1 Motivação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Threads. O que é uma Thread? Paralelismo

Threads. O que é uma Thread? Paralelismo Threads em Java 1 O que é uma Thread? Paralelismo Threads Multi- threading é o mecanismo de concorrência suportado explicitamente pela linguagem Java. Os mecanismos de gerenciamento e sincronização de

Leia mais

Threads e Sockets em Java. Threads em Java. Programas e Processos

Threads e Sockets em Java. Threads em Java. Programas e Processos Threads em Java Programas e Processos Um programa é um conceito estático, isto é, um programa é um arquivo em disco que contém um código executável por uma CPU. Quando este programa é executado dizemos

Leia mais

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode

Leia mais

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Revisão Ultima aula [1/2]

Revisão Ultima aula [1/2] SOP - TADS Comunicação Interprocessos - 2 IPC Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula

Leia mais

Computação Concorrente (MAB-117) Monitores

Computação Concorrente (MAB-117) Monitores Computação Concorrente (MAB-117) Monitores Prof. Silvana Rossetto 1 Departamento de Ciência da Computação (DCC) Instituto de Matemática (IM) Universidade Federal do Rio de Janeiro (UFRJ) Maio de 2012 1.

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Sincronização de Processos (4) Monitores

Sincronização de Processos (4) Monitores Sincronização de Processos (4) Monitores Monitores (1) Sugeridos por Dijkstra (1971) e desenvolvidos por Hoare (1974) e Brinch Hansen (1975), são estruturas de sincronização de alto nível, que têm por

Leia mais

Programação Concorrente

Programação Concorrente + XV Jornada de Cursos CITi Aula 2 Programação Concorrente Benito Fernandes Fernando Castor João Paulo Oliveira Weslley Torres + Agenda Conceitos básicos de Threads em Java Benefícios de Thread Estados,Métodos,

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

Sincronização. Cooperação entre Processos

Sincronização. Cooperação entre Processos Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Threads Aula 04 2 Quadrimestre

Threads Aula 04 2 Quadrimestre BC1518 - Sistemas Operacionais Threads Aula 04 2 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: marcelo.nascimento@ufabc.edu.br Roteiro Threads: Visão Geral Benefícios Tipos Modelos de multithread

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código } Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br Programação Concorrente [Parte 2] Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Alexandre Veloso alexandre.matos@udesc.br Condição de Corrida Uma forma de um processo comunicar-se

Leia mais

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre

Leia mais

Programação concorrente em Java

Programação concorrente em Java Programação concorrente em Java Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2007/2008 c 2000 2007 Paulo Sérgio Almeida Programação concorrente

Leia mais

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br. Kraemer

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br. Kraemer Disciplina de Sistemas Distribuídos Sincronização em SD Prof. M.Sc. Alessandro kraemer@utfpr.edu.br Cronograma Contextualização Tipos de sincronização Mecanismos para sincronização da região crítica Exclusão

Leia mais

Is Event Dispatcher Threade (Animation)

Is Event Dispatcher Threade (Animation) JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Is Event Dispatcher Threade (Animation) FACULDADE DE TECNOLOGIA SENAC PELOTAS Nome do aluno: João Vitor Ávila dos Santos Identificação da Turma: 3º Semestre/

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

processo internamente dadospara serem

processo internamente dadospara serem Aula 14 Monitores Sincronização e Troca de de Processos Mensagens (5) Monitores Sugeridos Profa. Patrícia Motivação: (1974) sincronização (forçar) concorrentes. (1) por Dijkstra(1971) e desenvolvidos por

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Programação Concorrente/Paralela em Java

Programação Concorrente/Paralela em Java em Java Resolução do Exercício 1 public class Cont extends Thread { protected int ct; public Cont() { ct=0; public synchronized void inc() { ct++; public void run() { for (int i=0; i

Leia mais

Programação Concorrente em Java

Programação Concorrente em Java Programação Concorrente em Java Prof. Orlando Loques - IC/UFF versão 17-04-2001 Referências: - Programação Concorrente em Java, Sérgio Teixeira de Carvalho & Leonardo N. M. Reis IC-UFF - Ousterhout, J.:

Leia mais

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua. 7 Animação Animações é um dos quesitos muito importantes em jogos, você não acha? Para isso o JPlay tem uma classe específica para lidar com animações. Essa classe se chama Animation. Bem sugestivo o nome

Leia mais

Monitores. Setembro de 2009. Monitores

Monitores. Setembro de 2009. Monitores Setembro de 2009 mecanismo de sincronização clássico referência influência de conceitos de programação estruturada C. A. R. Hoare, Monitors: an operating system structuring concept, Communications of the

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Objetivos: Entender o funcionamento dos programas Java via linha de comando

Objetivos: Entender o funcionamento dos programas Java via linha de comando Algoritmos e Programação I Aula de Laboratório Objetivos: Entender o funcionamento dos programas Java via linha de comando 1. A Linha de Comando: DOS ou Shell Apesar dos usuários geralmente não enxergarem

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

Sobre a apresentação (About(

Sobre a apresentação (About( Capítulo 4: Threads Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada por Cristiaino

Leia mais

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)

Leia mais

Capítulo 8. Software de Sistema

Capítulo 8. Software de Sistema Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java

Leia mais

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos. import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Desenvolvimento OO com Java Orientação a objetos básica

Desenvolvimento OO com Java Orientação a objetos básica Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal

Leia mais

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and Guy Steele,

Leia mais

public void setdata(data d) { data = d;

public void setdata(data d) { data = d; class Data... public class Compromisso private Data data; private int hora; private String descricao; /**java.lang.string*/ public Compromisso() public Compromisso(Data data, int hora, String descricao)

Leia mais

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - Threads 24/04/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Threads Processos Threads Conceituação Descrição e Imagem de uma Thread Tipos de thread

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Processo Profº Antonio Carlos dos S. Souza Estrutura do Processo Contexto de Software Contexto de Hardware Programa Espaço

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

Utilizando Threads em Java

Utilizando Threads em Java Utilizando Threads em Java CCComp - DCE - UESB Resumo sobre os threads em Java Estrutura Geral das Implementações CCComp - DCE - UESB class ProcessoA extends Thread {... }//fim da classe ProcessoA class

Leia mais

Só podem ser executados por uma Thread que detenha o lock do objecto

Só podem ser executados por uma Thread que detenha o lock do objecto Transferência de controle entre Threads Os métodos wait(), notify() notifyall(), da classe Object, Permitem a transferência de controlo de uma Thread para outra. Só podem ser executados por uma Thread

Leia mais

Threads. Leonardo Gresta Paulino Murta

Threads. Leonardo Gresta Paulino Murta Threads Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aula de hoje Estudaremos a execução em paralelo de programas em Java por meio de Threads Leonardo Murta Threads 2 Por que usar Threads? Threads

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; um objeto; é definido; Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; class ClasseBase{ é instanciado; $objetobase = new ClasseBase; Caso queira,

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

PUC-SP Depto. de Ciência da Computação

PUC-SP Depto. de Ciência da Computação Mensagens Concorrentes Prof. Dr. Italo Santiago Vega Julho de 2000 PUC-SP Depto. de Ciência da Computação www.pucsp.br/~italo Introdução Concorrência libera a modelagem de interações entre objetos tradicionalmente

Leia mais

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em

Leia mais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais