Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …

Slides:



Advertisements
Presentazioni simili
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 51 Applet configurabili Grazie alla sezione parametri aggiuntivi del comando di HTML è possibile.
Advertisements

Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public class Up extends Object { public.
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Interfacce Java.
Gestione dei processi A. Ferrari.
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Java: programmazione concorrente con condivisione di memoria
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Alcune Classi Standard Object, Vettori. Esercizio dellultima volta Superclasse Persona Sottoclasse Libro.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
E.Mumolo, DEEI Programmazione RTAI E.Mumolo, DEEI
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.
Introduzione ai thread
Introduzione ai thread
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
Richiami di TCP Networking in Java Elementi di base.
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
Programmazione II: Tecniche Avanzate. (A.A. 1999/2000) - Lezione 6 1 Estensione di classi: il Contratto INTERFACCIA E REALIZZAZIONE Che cosa realizza una.
Selezione (=scelta) con “if-else”
© CEFRIEL Concorrenza (cenni) Docente: Gabriele Lombardi
Sincronizzazione fra thread
Sistemi Operativi GESTIONE DEI PROCESSI.
Programmazione distribuita in Java
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
void binario(int n); …………………
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Programmazione concorrente
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
1 Simulated multiple inheritance Sandro Pedrazzini Approfondimento Simulated multiple inheritance in Java.
1 Incapsolamento (intro) Sandro Pedrazzini Approfondimento Incapsolamento (introduzione)
Esercizi Swing.
Collection & Generics in Java
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Nuove funzionalitA’ e caratteristiche del linguaggio
Timer Animazioni.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Gestione dei thread in Java
1 Elementi di programmazione concorrente in Java: i threads.
Priorità e Sincronizzazione tra Threads. Priorità e preemption Java non garantisce la preemption Lo scheduling avviene in base all’algortimo Highest Priority.
Java World Introduzione.
Java: concetti e costrutti base
Unità didattica 1: Introduzione al linguaggio Java
TIPI PRIMITIVI TIPI STRUTTURATI
Esercizi.
Corso Java Introduzione.
Elementi di programmazione concorrente in Java: i threads
Analisi di regioni Luigi Cinque 23/02/2019 Analisi di regioni.
Java Introduzione.
Dalla programmazione tradizionale al paradigma OO
Transcript della presentazione:

Richiami di Java Multithreading

Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); … } public class C extends Thread { public void run() { //implementazione di run } A non attende la fine del metodo start di t

Threads (delegation) public class A { public void a_method { C t = new C(); Thread th=new Thread(t); //Thread th=new Thread(t,new C(String name); th.start(); … } public class C extends B implements Runnable { public void run() { //implementazione di run } A non attende la fine del metodo start di th

Threads by name - INTERFACE Public class C implements Runnable { public void run() { //implementazione di run } }... String name=Nome della Thread; C aRunnableClass = new C(); Thread a = new Thread(aRunnableClass); Thread a = new Thread(aRunnableClass,name); … String vecchioNome=a.getName(); a.setName(Nuovo nome della Thread);

Richiamo dei metodi principali di Thread Thread a ; … a.start(); // attiva il metodo run a.yield(); //cede la CPU (sospensione non temporizzata) a.sleep(long milliseconds); // sospensione temporizzata a.sleep(long milliseconds, int nanoseconds); a.destroy();// distrugge la Thread Metodi Deprecati: a.stop();// interrompe il metodo run (termina) a.suspend();// sospende indefinitamente il metodo run a.resume();// riprende dopo una suspend

Controllo delle Threads boolean isAlive(); vero se la thread e attiva (dopo start, prima di stop) static int activeCount(); ritorna il numero di threads attive; static int enumerate(Thread threadArray[]); ritorna un vettore contenente tuttle le threads; static Thread currentThread(); ritorna la Thread corrente;

Controllo delle Threads: rendez-vous Class T extends Thread; T t1 = new T(); T t2 = new T(); t2.join(); // nel codice di t1 sospende lesecuzione di t1 fino al completamento di t2 ovvero fino a quando t2 sara considerata non attiva void join(); void join(long m); //sospendi, ma per non piu di m milliseconds void join(long m, int n); //sospendi, ma per non piu di // m milliseconds e n nanoseconds

Daemon Threads Ci sono due tipi di threads: user threads e daemon threads. La differenza sta nel fatto che lapplicazione/applet termina quando non ci sono piu user threads. Le daemon threads servono dunque per effettuare servizi a favore delle user threads. Tutte le threads di sistema sono daemon threads. void setDaemon(boolean on) boolean isDaemon ()

A simple Round Robin scheduler public class SimpleScheduler extends Thread { int timeslice; public SimpleScheduler(int t) { timeslice=t; setPriority(Thread.MAX_PRIORITY); setDaemon(true); } public void run() { while (true) try { sleep(timeslice); } catch (Exception e) {} } class TestThread extends Thread { public void run() {... } public class Test { public static void main (string args[]) { new SimpleScheduler(100).start(); TestThread t1,t2,t3; t1=new TestThread(); t2=new TestThread(); t3=new TestThread(); t1.start(); t2.start(); t3.start(); }

Concorrenza Attenzione! Occorre stare attenti alle variabili condivise tra più threads. (monitor, wait & notify)