Gruppi di Thread. Java threads (3) Gruppi di thread e Timer. Operating Systems. Operating Systems. Java threads 3. Java threads 3



Похожие документы
Java threads (2) Programmazione Concorrente

GESTIONE DEI PROCESSI

Telematica II 17. Esercitazione/Laboratorio 6

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Java Virtual Machine

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Multithreading in Java. Fondamenti di Sistemi Informativi

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Esercitazione 2: Java Thread. Java Thread. Java Thread. Un thread:

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Main System Monitor Keyboard

13. Chain of Responsibility

Gestione dei thread in Java LSO 2008

appunti delle lezioni Architetture client/server: applicazioni server

Java thread, concorrenza

Programmazione a Oggetti Lezione 10. Ereditarieta

Algoritmi di Ricerca. Esempi di programmi Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 14 - Thread in Java

Sincronizzazione con Java

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Un esercizio d esame. Flavio De Paoli

Esercizi della lezione 5 di Java

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

La concorrenza in Java package java.util.concurrent Antonio Furone

Java: Compilatore e Interprete

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Inizializzazione, Assegnamento e Distruzione di Classi

Corso sul linguaggio Java

Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

Tale attività non è descritta in questa dispensa

Archivio CD. Fondamenti di Programmazione

Java Threads. esempi

Eclipse. Avviare un progetto e compilare un semplice programma

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

La struttura dati ad albero binario

Introduzione a Classi e Oggetti

Esercitazione n 4. Obiettivi

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Parola chiave extends

Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A

Esercizio Sincronizzazione Thread

Corso sul linguaggio Java

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe È qualcosa che abbiamo già visto varie volte

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

Multithreading in Java I parte. Lorenzo Gallucci

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Realizzazione di una classe con un associazione

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da:

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D

Gestione delle eccezioni in Java

Esempio: il conto bancario

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247

Programmare in Java. Olga Scotti

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

19. Introduzione al multi-threading

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Prova di Laboratorio di Programmazione

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Concetto di Funzione e Procedura METODI in Java

Gestione delle Eccezioni

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

RMI Remote Method Invocation

Soluzione dell esercizio del 2 Febbraio 2004

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Permessi Android Mobile Programming Prof. R. De Prisco

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

RMI. Java RMI RMI. G. Prencipe

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Definizione di thread Proprietà dei thread in Java Gestione delle priorità nei programmi multithreaded Gruppi di thread Accesso a variabili condivise

Транскрипт:

Java threads (3) Gruppi di thread e Timer emanuele lattanzi isti information science and technology institute 1/12 Gruppi di Thread emanuele lattanzi isti information science and technology institute 2/12 1

Gruppi di thread I thread possono essere raggruppati in gruppi di thread Si possono creare gerarchie di gruppi di thread Un gruppo di thread puo essere usato per: tenere traccia del numero di thread attivi Rimuovere threads in blocco Cambiare la priorita di threads in blocco Interrompere l intero gruppo di threads emanuele lattanzi isti information science and technology institute 3/12 ThreadGroup (1) I gruppi di thread sono implementati dalla classe java.lang.threadgroup. Quando un thread viene creato e possibile selezionare esplicitamente il gruppo in cui inserirlo altrimenti la JVM lo inserirà in un gruppo di default. Il thread è un membro permanente del gruppo in cui è inserito all atto della creazione; non è quindi possibile spostare un thread in un nuovo gruppo dopo la sua creazione. emanuele lattanzi isti information science and technology institute 4/12 2

ThreadGroup (2) Costruttori della classe Thread per definire il gruppo: public Thread(ThreadGroup group, Runnable runnable) public Thread(ThreadGroup group, String name) public Thread(ThreadGroup group, Runnable runnable, String name) E possibile creare un proprio gruppo di thread: ThreadGroup mythreadgroup = new ThreadGroup("My Group"); Thread mythread = new Thread(myThreadGroup,"a thread"); emanuele lattanzi isti information science and technology institute 5/12 Metodi della classe ThreadGroup Metodi di gestione Metodi che gestiscono il ThreadGroup Metodi che operano sul ThreadGroup set o get degli attributi del ThreadGroup Metodi che operano su tutti I thread all interno del gruppo Metodi che compiono delle azioni come interrupt() o resume(), su tutti I thread emanuele lattanzi isti information science and technology institute 6/12 3

Esempio public class TestGroup { public static void main(string[] args) { ThreadGroup gruppo1 = new ThreadGroup("Gruppo uno"); ThreadExample1 thread1, thread2, thread3; thread1 = new ThreadExample1 ( gruppo1, "thread1", "Emanuele Lattanzi"); thread2 = new ThreadExample1 ( gruppo1, "thread2", "Francesco Morelli"); thread3 = new ThreadExample1 ( gruppo1, "thread3", "Giorgia Cavallanti"); thread1.start(); thread2.start(); thread3.start(); int numthreads = gruppo1.activecount(); System.out.println("I thread attivi sono "+numthreads); System.out.println("Fanno parte del gruppo: "+gruppo1); Thread[] listofthreads = new Thread[numThreads];; gruppo1.enumerate(listofthreads); for (int i = 0; i < numthreads; i++) { System.out.println("Thread #" + i + " = " + listofthreads[i].getname()); emanuele lattanzi isti information science and technology institute 7/12 Methods that Operate on the Group The methods that get and set ThreadGroup attributes operate at the group level. They inspect or change the attribute on the ThreadGroup object, but do not affect any of the threads within the group. The following is a list of ThreadGroup methods that operate at the group level: getmaxpriority and setmaxpriority getdaemon and setdaemon getname getparent and parentof tostring emanuele lattanzi isti information science and technology institute 8/12 4

Timer emanuele lattanzi isti information science and technology institute 9/12 La classe Timer Fornisce un meccanismo utilizzabile dai thread per schedulare un task da essere eseguito in futuro in un thread a parte Il task può essere schedulato per essere eseguito una sola volta oppure in modo periodico ad intervalli regolari Ad ogni Timer corrisponde un thread eseguito in background emanuele lattanzi isti information science and technology institute 10/12 5

La classe TimerTask E una clase astratta che contiene un metodo astratto run() E necessario definire una classe concreata che implementi il metodo run(). Tale classe deve essere passata ad un oggetto timer. L oggetto timer eseguirà il metodo run dell oggetto TimeTask al tempo desiderato. emanuele lattanzi isti information science and technology institute 11/12 public class TimerReminder { Timer timer; Esempio public TimerReminder(int seconds) { timer = new Timer(); timer.schedule(new RemindTask(), seconds*1000); class RemindTask extends TimerTask { public void run() { System.out.println("Time's up!"); timer.cancel(); //Terminate the timer thread public static void main(string args[]) { System.out.println("About to schedule task ); new TimerReminder(5); System.out.println("Task scheduled"); emanuele lattanzi isti information science and technology institute 12/12 6