Programação Orientada a Objetos (DPADF 0063)
|
|
- Amanda Barata Gabeira
- 6 Há anos
- Visualizações:
Transcrição
1 Programação Orientada a Objetos (DPADF 0063) Aula 10 Threads Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati
2 Linhas de execução independentes
3 Programação Concorrente Programar de forma concorrente significa pensar e escrever programas de computador que fazem mais de uma coisa ao mesmo tempo; Na vida real, muito do que fazemos (respirar, falar, ler, escutar) e do que os computadores fazem (compilar, imprimir, tocar música, baixar vídeo) acontece de forma concorrente. Os objetivos da programação concorrente podem ser: Reduzir o tempo total de processamento Aumentar a confiabilidade disponibilidade das aplicações Especializar serviços (SOs, simuladores), etc.
4 Onde utilizar programação concorrente? Programação Reativa A aplicação responde a eventos de entrada (em uma GUI cada evento corresponde a uma ação). Programação Interativa Escrever um programa dividindo tarefas: uma tarefa para fazer alguma interação com o usuário, outra para exibir mensagens, outra para fazer animação, etc... Paralelismo físico/distribuição Permite tirar vantagem de múltiplas CPUs centralizadas ou distribuídas (cada vez mais presentes nos sistemas computacionais).
5 Threads Uma thread é uma linha de execução, um fluxo de execução, um segmento de programa executando dentro da CPU; Programação multithreading consiste em pensar e escrever as aplicações de forma que ações sejam executadas em paralelo de forma concorrente; Apenas computadores com múltiplos processadores podem de fato executar instruções em paralelo, porém, sistemas operacionais modernos oferecem recursos para criar uma ilusão de paralelismo em máquinas monoprocessadas compartilhando o tempo de execução entre diferentes aplicações.
6 Threads (cont.) A figura abaixo demonstra a utilização da CPU por segmentos de código. Observe que apenas um segmento ocupa a CPU de cada vez e há uma fila de segmentos aguardando sua vez... CPU Segmento segmento ganha a CPU Segmento Segmento Segmento Fila de Segmentos Segmento Segmento Segmento Segmento segmento deixa a CPU
7 Programação concorrente & Java Java disponibiliza a concorrência de forma nativa por meio da linguagem e de seu framework; Ao especificar uma thread estamos criando um fluxo de execução independente, com sua própria pilha de chamadas de método e contador de programa; Java inclui primitivos de multithreading de forma integrada à linguagem de programação, não sendo necessário chamar primitivas específicas do sistema operacional (isso é muito importante para a portabilidade do código). A classe Thread representa um fluxo de execução independente para a linguagem Java.
8 Um pequeno exemplo... Compile o código abaixo e o execute a classe resultante... public class Corrida extends Thread { public Corrida(String n) { super(n); public void run() { for (int i=1; i<=10; i++) { System.out.println(getName() + " na volta " + i); O método run() contém a tarefa que a thread deve executar. Quando ele termina a thread termina System.out.println("-->" + getname() + " chegou "); public static void main (String args[]) { Corrida s = new Corrida("Sebastian Vettel"); Corrida f = new Corrida("Fernando Alonso"); Corrida k = new Corrida("Kimi Raikkonen"); s.start(); f.start(); k.start(); O método start() coloca a thread na fila para tentar ganhar CPU Quem ganhou a corrida? (execute novamente... e agora, quem ganhou?)
9 Métodos de uma thread getname() Cada thread pode opcionalmente ser identificada por um nome. setpriority(int prioridade) As threads podem ter prioridades distintas entre si (baixa, média e alta) sleep(long tempo) Faz com que a thread descanse por alguns milissegundos deixando de ocupar a CPU. Ao acordar ela volta para a fila. start() Coloca a thread na fila para tentar ganhar CPU. yield() Retira a thread da CPU e já a recoloca na fila novamente (isso dá chance de uma outra thread ganhar a CPU).
10 Ciclo de vida de uma thread running (executando) sleeping (dormindo) Monitor Waiting Dead (Encerrada) runnable (aguardando na fila da CPU) waiting (aguardando algum recurso)
11 O que leva a thread deixar a CPU? O objetivo de uma thread é alcançar a CPU para que possa ser executada, mas há situações onde a thread deixa a CPU: Voluntariamente (através do método yield() para dar chance a outras threads ocuparem o processador); Quando ela está aguardando algum recurso de IO (dados de arquivo, entrada via teclado); Quando ela está aguardando lock de um recurso compartilhado; Por preempção (alguns SOs dão uma fatia de tempo para cada thread); Por prioridade (quando alguma thread de maior prioridade aparece na fila); Ao terminar sua tarefa (quando o método run() conclui).
12 Prioridade de uma thread O modelo de escalonamento de Threads da JVM (a forma como uma Thread é elegida para utilizar a CPU) é baseada em prioridades. Existem 3 prioridades que podem ser utilizadas: Thread.MIN_PRIORITY (prioridade baixa) Thread.MAX_PRIORITY (prioridade alta) Thread.NORM_PRIORITY (prioridade normal) O método setpriority() é utilizado para indicar qual é a prioridade da Thread.
13 Prioridade de uma thread (cont.) A JVM elege as Threads de maior prioridade para ocupar a CPU em detrimento das Threads de menor prioridade. Uma Thread de menor prioridade pode será executada quando as Threads de maior prioridade terminarem executarem yield() executarem sleep() ficarem aguardando algum recurso bloqueado Se uma Thread de prioridade alta ocupar a CPU por muito tempo a JVM pode selecionar, ocasionalmente, uma Thread de prioridade mais baixa, preemptando a Thread de mais alta prioridade
14 Interface Runnable Criar uma classe descendente de Thread nem sempre é uma boa ideia, principalmente em Java, onde cada classe tem uma única superclasse. A classe Thread disponibiliza alguns métodos estáticos que recebem objetos de classes que implementam uma interface específica... Runnable A interface Runnable exige basicamente a implementação do método run().
15 Interface Runnable (cont) class Tarefa implements Runnable { String nome; public Tarefa (String n) { nome = n; A interface Runnable exige o método run() public void run() { for (int i=0; i<10; i++) System.out.println(nome + " executando tarefa (" + i + ")"); System.out.println(nome + " concluído "); public static void main(string args[]) { Tarefa t1 = new Tarefa("t1"); Tarefa t2 = new Tarefa("t2"); new Thread(t1).start(); new Thread(t2).start(); Uma nova Thread é instanciada passando como parâmetro um objeto de uma classe Runnable
16 Sincronização (Imagine o seguinte cenário) Uma classe conta bancária com métodos para obter e atualizar o saldo; public class Conta { public double saldo = 0; public Conta(double saldo) { this.saldo = saldo; System.out.println("Saldo inicial: R$" + saldo); public double getsaldo() {return saldo; public void setsaldo(double saldo) {this.saldo = saldo;
17 Sincronização (cont.) (Imagine o seguinte cenário) Um classe banco com dispositivos para movimentar as contas; public class Banco { public boolean saque(conta conta, double valor) { double saldo = conta.getsaldo(); if (saldo < valor) { System.out.println("Saldo insuficiente para o saque."); return false; double novosaldo = saldo - valor; System.out.println(Thread.currentThread().getName() + " sacou R$" + valor + ". Saldo após saque: R$" + novosaldo); conta.setsaldo(novosaldo); return true;
18 Sincronização (cont.) (Imagine o seguinte cenário) Uma classe cliente de um banco com sua conta corrente, um valor para saque e a vontade de gastar todo o dinheiro; public class Cliente extends Thread { private static Banco banco = new Banco(); private Conta conta = null; private double valor = 1000; public Cliente(String nome, Conta conta) { super(nome); this.conta = conta; public void run() { double total = 0; while (banco.saque(conta,valor)) total += valor; System.out.println(getName() + " sacou total de R$" + total);
19 Sincronização (cont.) (Imagine o seguinte cenário) Várias instâncias de clientes (uma família) movimentando uma mesma conta ao mesmo tempo. public class Familia { public static void main (String args[]) { final Conta conta = new Conta(100000); Cliente pai = new Cliente("Pai ", conta); Cliente mae = new Cliente("Mãe ", conta); Cliente filho = new Cliente("Filho", conta); pai.start(); mae.start(); filho.start();
20 Sincronização (cont.) (Observe a execução da classe família) Saldo inicial: R$ Pai sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Pai sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Pai sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Pai sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Pai sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Filho sacou R$ Saldo após saque: R$0.0 Pai sacou R$ Saldo após saque: R$ Saldo insuficiente para o saque. Mãe sacou R$ Saldo após saque: R$ Filho sacou total de R$ Pai sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Pai sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Pai sacou R$ Saldo após saque: R$ Mãe sacou R$ Saldo após saque: R$ Pai sacou R$ Saldo após saque: R$0.0 Saldo insuficiente para o saque. Mãe sacou R$ Saldo após saque: R$0.0 Saldo insuficiente para o saque. Pai sacou total de R$ Mãe sacou total de R$ Saldo inicial R$ ,00 Saldo insuficiente para o saque Mãe sacou R$ 1000,00 (saldo após o saque R$ 3 mil) Quanto cada um sacou até que o saldo acabasse? Filho sacou total de R$ Pai sacou total de R$ Mãe sacou total de R$ 10000
21 Sincronização (cont.) O código executado anteriormente utiliza um recurso compartilhado entre todas as Threads (objeto da classe Conta); Para garantir acesso exclusivo a um recurso compartilhado, ou seja, criar uma fila de espera para utilizar o recurso um de cada vez, faz-se necessário utilizar recursos de sincronização. A palavra reservada synchronized marca um método ou um bloco de código como sincronizado, isso garante que aquele código somente será acessado por uma Thread de cada vez. Experimente alterar a interface dos métodos abaixo incluindo a palavra synchronized: Conta.getSaldo() Conta.setSaldo(double) Banco.saque(Conta, double)
22 Exercícios para fixação
23 Corrida Maluca... Codifique uma classe veículo que implementa a interface runnable. A cada corrida, cada veículo possui uma velocidade que é sorteada quando a classe é instanciada. Simule uma corrida maluca com os personagens do desenho animado Wacky Races (produzido nos estúdios Hanna-Barbera nos anos de 68 e 70). Utilize todos os personagens (Dick Vigarista & Muttley, Irmãos Rocha, Cupê Mal-Assombrado, Professor Aéreo, Barão Vermelho, Penélope Charmosa, Carro Tanque, Quadrilha de Morte, Peter Perfeito e Rufus Lenhador)
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 maisExecução concorrente em Java: threads. O que são Threads? Criação e métodos de Threads Sincronização Comunicação entre Threads
Execução concorrente em Java: threads O que são Threads? Criação e métodos de Threads Sincronização Comunicação entre Threads Programação concorrente: introdução O mundo real funciona concorrentemente:
Leia maisProgramaçã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 maisThreads. 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 maisMULTITHREADING. Prof.: Michele Nasu Tomiyama Bucci
MULTITHREADING Prof.: Michele Nasu Tomiyama Bucci Introdução O corpo humano realiza uma grande variedade de operações paralelamente, ou concorrentemente. Os computadores também realiza operações concorrentemente.
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência
Aula 11 - Threads e Concorrência Conteúdo Programático desta aula Apresentar os Conceitos de Threads, Concorrência e Sincronização. Verificar a aplicabilidade destes conceitos no mercado, bem como sua
Leia maisThreads 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 maisThreads. 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 maisConcorrência em Java. Threads em Java
Concorrência em Java Threads em Java Máquina Virtual Java, Processos e Threads Cada instância da JVM corresponde a um processo do sistema operacional hospedeiro. A JVM não possui o conceito de processos
Leia maisJava 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 maisTHREADS 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 maisGabriel de Oliveira Ramos Roland Teodorowitsch - Orientador
THREADS EM JAVA Gabriel de Oliveira Ramos Roland Teodorowitsch - Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência da Computação Campus
Leia maisMúltiplas Linhas de Execução Java (Threads)
Múltiplas Linhas de Execução Java (Threads) SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 9 Threads Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Threads Uma thread
Leia maisTratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos
Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos Nesta unidade vamos ver os últimos assuntos de interesse em java. O primeiro deles, bem simples, é o tratamento
Leia maisJAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
Leia maisnome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){
UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------
Leia maisSistemas Operacionais I Parte VI Threads
Sistemas Operacionais I Parte VI Threads Roteiro Introdução Benefícios Ciclo de Vida Estados Modelos Multithreading Modelo Muitos para Um Modelo Um para Um Modelo Muitos para Muitos Sistemas com Threads
Leia maisAula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisJava Standard Edition (JSE)
Java Standard Edition (JSE) 14.Threads Esp. Márcio Palheta Gtalk: marcio.palheta@gmail.com 1 Agenda Conceitos de programação concorrente Estendendo Thread; Troca de contextos; Garbage Collector; Problemas
Leia maisUNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação Processamento Paralelo Threads Aluno: Wagner Palacio Turma: 3º período Professor: Giordano Cabral Recife, 29 de maio de 2012
Leia maisModificadores de Acesso e Atributos de Classe
Modificadores de Acesso e Atributos de Classe 1 Controlando o acesso p Um dos problemas mais simples que temos no nosso sistema de contas é que o método saca permite sacar mesmo que o limite tenha sido
Leia maisRESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Leia maisLista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
Leia maisProgramaçã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 maisLabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...
LabSO Gerência de Processos Retrospectiva da aula passada... AULA 4 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Na aula passada... Processos Estados do processo
Leia maisOO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à programação multi-thread. Thread: linha de execução de um processo. Multi-thread: execução de múltiplas threads em um processo. Prof.
Leia maisNum programa em JAVA é possível definir diferentes sequências de execução independente: Threads.
Threads Folha 5-1 Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Uma Thread é similar a um processo no sentido em que corresponde a um conjunto de instruções
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisAtributos e Métodos Estáticos
Atributos e Métodos Estáticos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos
Leia maisProgramaçã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 maisJava Standard Edition (JSE)
Java Standard Edition (JSE) Capítulo 05. Encapsulamento, Modificadores de acesso e atributos de classe Esp. Márcio Palheta MSN: marcio.palheta@hotmail.com 1 Agenda Revisão da aula anterior; Motivação Organização;
Leia maisOrientação a Objetos Básica
Orientação a Objetos Básica Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos
Leia maisProgramação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia maisDados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.
2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam
Leia maisTécnicas Avançadas de Programação
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos
Leia maisUniversidade da Beira Interior. Sistemas Distribuídos. Folha 4-1. Threads Daemon Threads
Threads Daemon Threads Folha 4-1 Uma Thread Daemon é uma Thread, geralmente usada para executar serviços em background, que tem a particularidade de terminar automaticamente após todas as Threads não Daemon
Leia maisConcorrência em Processos
Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação
Leia maisControle de Concorrência
Unidade 3 Semáforos Se bem utilizado, o paralelismo resulta em um melhor desempenho dos programas Mais threads processador melhor utilizado No entanto, podem ocorrer problemas no acesso concorrente a dados
Leia maisFundamentos 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 maisPUC-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 maisThreads 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 maisLinguagem de programação Java
Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Java Professor: Saulo Henrique Cabral Silva ENTENDENDO O JAVA 2 Entendendo o Java executando... A instância da JVM irá iniciar
Leia mais[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.
Cap. IV - 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
Leia maisProgramação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 3 Abstração Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Leia maisProgramação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Leia maisJAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS
JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS LABORATÓRIO 2 PROF. EMILIO PARMEGIANI Neste laboratório trabalharemos com conceitos de orientação a objetos, através da criação de classes, propriedades,
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisPalavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Leia maisOO - Orientação a Objetos
OO - Orientação a Objetos 1 Motivação p Orientação a objetos é uma maneira de programar que ajuda na organização e resolve muitos problemas enfrentados pela programação procedural; p Imaginem em um grande
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 5 Gerenciamento de Processos Prof. Belarmino Execução de Processos Já vimos que o processador executa os processos entregando uma fatia de tempo (time slice) para
Leia maisRelacionamentos entre objetos
Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos
Leia maisUNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Leia maisClasses o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Multithreading (multiprogramação leve) Aula 04 Forma diferente de enxergar a abstração de processo = Conjunto de recursos relacionados endereçamento, arquivos, filhos,
Leia maisSistemas Operacionais
Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Multithreading Aula 04 Necessidade de executar atividades concorrentes, porém cooperantes ou que compartilhem dados endereçamento
Leia maisEx: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)
Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos????? ADAPTAR O TEXTO ABAIXO????? Aprender a sintaxe da Estrutura de Repetição ENQUANTO-FAÇA na linguagem PORTUGOL Aprender a resolver problemas que requeiram o uso de ESTRUTURAS
Leia maisProgramação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Leia mais14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo
Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 20ª Aula Arquiteturas Paralelas Arquitetura MIMD com Memória Compartilhada Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Arquiteturas MIMD As arquiteturas MIMD dividem-se
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
Leia maisControlando Erros com Exceções
Controlando Erros com Exceções 1 Motivação p O que aconteceria ao tentar chamar o método saca com um valor fora do limite? p O sistema mostraria uma mensagem de erro, mas quem chamou o método saca não
Leia maisProgramação Concorrente e Paralela. Noemi Rodriguez
2013 Objetivos princípios e técnicas de programação concorrente multiprocessadores memória compartilhada troca de mensagens obs: diferentes níveis de abstração! que princípios e técnicas são esses? notações
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual
Leia maisControle de Concorrência
Unidade 3 n n n n n Se bem utilizado, o paralelismo resulta em um melhor desempenho dos programas n Mais threads à processador melhor utilizado n No entanto, podem ocorrer problemas no acesso concorrente
Leia maisCOMPORTAMENTOS - Observações
COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para
Leia maisProgramação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno
Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de
Leia maisProgramação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos
Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?
Leia maisProgramação Orientada a Objetos Classes e Objetos. Prof. Vicente Paulo de Camargo
Programação Orientada a Objetos Classes e Objetos Prof. Vicente Paulo de Camargo A Programação Orientada a Objetos (POO) surgiu no final da década de 60 com a linguagem Simula-68. Os conceitos de POO foram
Leia maisProgramaçã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 maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Introdução a Processos Andreza Leite andreza.leite@univasf.edu.br Plano da Aula 2 Introdução a Processos Threads vs Processos Características dos Processos Estados dos Processos 3
Leia maisLabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
Leia maisUtilizando 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 maisEspecificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)
Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java
Aula 12 - Threads e Concorrência em Java Conteúdo Programático desta aula Aplicar os conceitos e threads, processos concorrentes e sincronização em pequenos programas. Aplicar e verificar os conceitos
Leia maisSistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos
Sistema Distribuído Conjunto de máquinas (CPU + memória) interligadas em rede. Sistema Distribuído Sistema operacional distribuído trata este conjunto como um único sistema computacional. Estação 1 Estação
Leia maisThreads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012
1 2005-2009 Volnys Bernal 1 2005-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de threads Interfaces de threads de usuário x threads de núcleo
Leia maisSó 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 maisAtribuições: Valores, Ponteiros e Referências
Atribuições: Valores, Ponteiros e Referências Estruturas de Dados Prof. Vilson Heck Junior Sobre Variáveis Aprendemos, em introdução à programação, que possuem 3 partes mais importantes: Nome; Tipo de
Leia maisINTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS outubro/2013 SEMANA 13 Conceitos sobre s. Visão geral, s de usuário e de, modelos de multiing, ciclo de vida. Exemplos nos sistemas operacionais. 1 - Introdução Thread
Leia maisFundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
Leia maisComputação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:
Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)
Leia maisOO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18B: Introdução à Multithreading. Exemplos: Programação OO Multithreading com pthreads. Aluno: Vagner Vengue Threads Orientadas a Objeto Thread Orientada
Leia maisInterfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.
Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em
Leia maisProgramação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -
Programação Java - Classes, Objetos, Atributos e Métodos - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Programação Orientada a Objetos Classes e Objetos Definindo e Instanciando Classes Atributos
Leia maisPolimorfismo. O que é polimorfismo?
O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus
Leia maisProgramação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
Leia maisSistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo Abstração usada pelo S.O. para designar a execução de um programa. (1) É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisProgramação Orientada a Objetos Classes Abstratas. Sérgio Soares
Programação Orientada a Objetos Classes Abstratas Sérgio Soares scbs@cin.ufpe.br Até aqui Quando usar herança? Ao redefinir um método manter o comportamento herdado! 2 Adivinhem... Surge um novo requisito
Leia mais