Exercices INF5171 : série #3 (Automne 2012)

Dimension: px
Commencer à balayer dès la page:

Download "Exercices INF5171 : série #3 (Automne 2012)"

Transcription

1 Exercices INF5171 : série #3 (Automne 2012) 1. Un moniteur pour gérer des ressources Le moniteur MPD 1 présente une première version d'un moniteur, exprimé en pseudo-mpd, pour gérer des ressources le nombre de ressources à gérer est spécié au moment de la création du moniteur. Le désavantage de cette version est qu'un thread pourrait tenter de libérer des ressources... qu'il n'a pas obtenues, par exemple : OK : obtenir( 4 );...; liberer( 3 );...; liberer( 1 ); Pas OK : obtenir( 4 );...; liberer( 3 );...; liberer( 2 ); Le moniteur MPD 2 présente une deuxième version, qui permet cette fois d'assurer qu'un thread ne libère pas incorrectement des ressources qu'il n'a pas acquises. Pour simplier, on utilise simplement une assertion pour vérier que le Permis obtenu possède encore les ressources allouées. L'interface Java 1 dénit un type GestionnaireRessources pour lequel nous examinerons diérentes mises en oeuvre. a. La classe Java 1 présente un squelette pour une classe GestionnaireMoniteur qui met en oeuvre l'interface GestionnaireRessources en utilisant uniquement les primitives du langage Java mot-clé synchronized, méthodes wait et notifyall. b. La classe Java 2 présente un squelette pour une classe GestionnaireSem qui met en oeuvre l'interface GestionnaireRessources en utilisant la classe Semaphore dénie dans la bibliothèque java.util.concurrent. c. La classe Java 3 présente un squelette pour une classe GestionnaireCond qui met en oeuvre l'interface GestionnaireRessources en utilisant l'interface et les classes Lock, ReentrantLock et Condition de la bibliothèque java.util.concurrent. Complétez chacune de ces classes. 1

2 Moniteur MPD 1 Une première version d'un moniteur pour gérer des ressources. monitor GestionnaireRessources op obtenir( int n ); op liberer( int n ); body GestionnaireRessources( int nbressources ) cond attente; int nbdisponibles = nbressources; proc obtenir( n ) assert( 1 <= n & n <= nbressources ); while ( n > nbdisponibles ) wait(attente); nbdisponibles -= n; proc liberer( n ) assert( 1 <= n ); nbdisponibles += n; signal_all( attente ); end 2

3 Moniteur MPD 2 Une deuxième version d'un moniteur pour gérer des ressources. monitor GestionnaireRessources type Permis; # Type prive, opaque. op obtenir( int n ) returns Permis p op liberer( Permis p, int n ); body GestionnaireRessources( int nbressources ) type Permis = ptr int; cond attente; int nbdisponibles = nbressources; proc obtenir( n ) returns p assert( 1 <= n & n <= nbressources ); end while ( n > nbdisponibles ) wait(attente); nbdisponibles -= n; p = new(int); p^ = n; proc liberer( p, n ) assert( 1 <= n & n <= p^ ); nbdisponibles += n; p^ -= n; signal_all( attente ); Interface Java 1 Interface GestionnaireRessources. interface GestionnaireRessources public Permis obtenir( int n ); void liberer( Permis p, int n ); 3

4 Classe Java 1 Classe GestionnaireMoniteur. class GestionnaireMoniteur implements GestionnaireRessources private int nbressources; private int nbdisponibles; GestionnaireMoniteur( int nbressources ) this.nbressources = nbressources; this.nbdisponibles = nbressources; class PermisPrive implements Permis private int qte; PermisPrive( int n ) this.qte = n; public int quantite() return qte; synchronized public Permis obtenir( int n ) assert( 1 <= n && n <= nbressources ); synchronized public void liberer( Permis p, int n ) assert( 1 <= n && n <= p.quantite() ); 4

5 Classe Java 2 Classe GestionnaireSem. import java.util.concurrent.*; class GestionnaireSem implements GestionnaireRessources Semaphore sem; private int nbressources; GestionnaireSem( int nbressources ) this.nbressources = nbressources; this.sem = new Semaphore( nbressources ); class PermisPrive implements Permis private int qte; PermisPrive( int n ) this.qte = n; public int quantite() return qte; public Permis obtenir( int n ) assert( 1 <= n && n <= nbressources ); public void liberer( Permis p, int n ) assert( 1 <= n && n <= p.quantite() ); 5

6 Classe Java 3 Classe GestionnaireCond. import java.util.concurrent.locks.*; class GestionnaireCond implements GestionnaireRessources Lock mutex = new ReentrantLock(); Condition disponible = mutex.newcondition(); private int nbressources; private int nbdisponibles; GestionnaireCond( int nbressources ) this.nbressources = nbressources; this.nbdisponibles = nbressources; class PermisPrive implements Permis private int qte; PermisPrive( int n ) this.qte = n; public int quantite() return qte; public Permis obtenir( int n ) assert( 1 <= n && n <= nbressources ); public void liberer( Permis p, int n ) assert( 1 <= n && n <= p.quantite() ); 6

7 2. Un moniteur pour gérer des piles L'interface Java 2 dénit un type Pile pour lequel nous examinerons diérentes mises en oeuvre sous forme de moniteur. Comme pour l'exercice précédent, la description initiale du moniteur sera donnée par un monitor exprimé en pseudo-mpd. On dit d'un type de données modélisant une forme de collection un regroupement d'éléments du même type, par exemple, ensembles, séquences, piles qu'il permet de dénir des collections bornées lorsqu'il existe une limite a priori sur le nombre d'éléments que peut contenir la collection, limite généralement spéciée au moment de la création de la collection. Lorsqu'aucune limite n'existe a priori (sauf, évidemment, l'espace mémoire disponible sur la machine ;), on dit alors que le type permet de dénir des collections non bornées. Le moniteur MPD 3 présente un moniteur MPD pour gérer des piles non bornées pouvant être utilisées par des threads. Lorsqu'un thread tente d'obtenir un élément de la pile avec depiler et que la pile est vide, alors le thread bloque jusqu'à ce qu'un élément soit empilé. Comme il n'y a pas de limite sur le nombre d'éléments pouvant être empilés, alors l'opération empiler ne bloque jamais. Quant au moniteur MPD 4, il présente un moniteur MPD pour gérer des piles bornées. Comme pour les piles non bornées, un thread qui tente d'obtenir un élément lorsque la pile est vide bloque jusqu'à ce qu'un élément soit empilé. Par contre, Comme il y a une limite sur le nombre d'éléments pouvant être empilés, alors un thread qui tente d'empiler alors que la pile est pleine va bloquer, jusqu'à ce qu'un élément ait été retiré. Remarques : De telles piles pourraient être utilisées pour mettre en oeuvre un sac de tâches avec une stratégie LIFO. Pour être complet, il aurait aussi été préférable de dénir une opération pour déterminer si la pile est vide, ou encore pour tenter de dépiler et ne pas bloquer si elle est vide. Toutefois, pour simplier l'exemple, seules les opérations empiler et depiler seront examinées. Un certain nombre de squelettes de classe vous sont fournis, que vous devez compléter : a. La classe Java 4 présente un squelette pour une classe PileNonBornee qui met en oeuvre l'interface Pile avec des piles non bornées et ce en utilisant uniquement les primitives du langage Java mot-clé synchronized, méthodes wait et notifyall. b. La classe Java 5 présente un squelette pour une classe PileBornee qui met en oeuvre l'interface Pile avec des piles bornées et ce en utilisant l'interface et les classes Lock, ReentrantLock et Condition de la bibliothèque java.util.concurrent. c. La classe Java 6 présente un squelette pour une classe PileBornee qui met en oeuvre l'interface Pile avec des piles bornées et ce en utilisant les Semaphores de la bibliothèque java.util.concurrent. pile-bornee-sem.java d. La classe Java 7 présente un squelette pour une classe PileBornee qui met en oeuvre l'interface Pile avec des piles bornées et ce en utilisant uniquement les primitives du langage Java mot-clé synchronized, méthodes wait et notifyall. Remarque : Malheureusement, cette classe ne fonctionnera pas, à moins d'introduire des classes auxiliaires complexes... Pourquoi? 7

8 Interface Java 2 Interface Pile. interface Pile void empiler( int v ); int depiler(); Moniteur MPD 3 Un moniteur pour gérer une PileNonBornee. monitor PileNonBornee # Pile non bornee: empiler ne bloque jamais. op empiler( int elem ); # depiler bloque si la pile est vide. op depiler() returns int sommet; body PileNonBornee() cond pasvide; int elems[0:*]; int nbelements = 0; # Illegal... mais pour simplifier la presentation # Represente un tableau <<non-borne>> (sic). # Borne a 0 pour faciliter la correspondance avec Java. proc empiler( elem ) elems[nbelements++] = elem; signal(pasvide); proc depiler() returns sommet while ( nbelements == 0 ) wait(pasvide); sommet = elems[--nbelements]; end 8

9 Moniteur MPD 4 Un moniteur pour gérer une PileBornee. monitor PileBornee # Pile bornee: empiler bloque si la pile est pleine. op empiler( int elem ); # depiler bloque si la pile est vide. op depiler() returns int sommet; body PileBornee( int taillemax ) cond paspleine; cond pasvide; int elems[0:taillemax-1]; int nbelements = 0; proc empiler( int elem ) while( nbelements == taillemax ) wait(paspleine); elems[nbelements++] = elem; signal(pasvide); proc depiler() returns sommet while ( nbelements == 0 ) wait(pasvide); sommet = elems[--nbelements]; signal(paspleine); end 9

10 Classe Java 4 Classe PileNonBornee. import java.util.vector; class PileNonBornee implements Pile private Vector<Integer> elems; PileNonBornee() this.elems = new Vector<Integer>(); synchronized public void empiler( int elem ) synchronized public int depiler() 10

11 Classe Java 5 Classe PileBornee. import java.util.concurrent.locks.*; class PileBornee implements Pile private int elems[]; private int nbelements; Lock mutex = new ReentrantLock(); Condition paspleine = mutex.newcondition(); Condition pasvide = mutex.newcondition(); PileBornee( int taillemax ) this.elems = new int[taillemax]; this.nbelements = 0; public void empiler( int elem ) public int depiler() 11

12 Classe Java 6 Classe PileBorneeSem. import java.util.concurrent.*; class PileBorneeSem implements Pile private int elems[]; private int nbelements; Semaphore mutex = new Semaphore( 1 ); Semaphore semnboccupes; Semaphore semnblibres; private void P( Semaphore sem ) try sem.acquire(); catch( Exception e ) private void V( Semaphore sem ) sem.release(); PileBorneeSem( int taillemax ) this.elems = new int[taillemax]; this.nbelements = 0; this.semnboccupes = new Semaphore( 0 ); this.semnblibres = new Semaphore( taillemax ); public void empiler( int elem ) public int depiler() 12

13 Classe Java 7 Classe PileBorneePasok. class PileBorneePasok implements Pile private int elems[]; private int nbelements; Object paspleine = new Object(); Object pasvide = new Object(); PileBorneePasok( int taillemax ) this.elems = new int[taillemax]; this.nbelements = 0; synchronized public void empiler( int elem ) synchronized public int depiler() 13

Nom: INF5171 Programmation concurrente et parallèle Examen nal (Automne 2012) Code permanent: 1 2 3 4 5 Total /10 /10 /10 /10 /10 /50 XXX XXX XXX

Nom: INF5171 Programmation concurrente et parallèle Examen nal (Automne 2012) Code permanent: 1 2 3 4 5 Total /10 /10 /10 /10 /10 /50 XXX XXX XXX Examen nal 1 INF5171 Programmation concurrente et parallèle Examen nal (Automne 2012) Durée: 13h30 16h30 Documentation : Documentation personnelle (papier) autorisée. Nom: Code permanent: 1 2 3 4 5 Total

Plus en détail

Moniteurs, Java, Threads et Processus

Moniteurs, Java, Threads et Processus Moniteurs, Java, Threads et Processus 1 Une vue orientée-objet de la mémoire partagée On peut voir un sémaphore comme un objet partagé accessible par deux méthodes : wait et signal. L idée du concept de

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

Plus en détail

Communications et synchronisations. Système L3, 2014-2015 1/21

Communications et synchronisations. Système L3, 2014-2015 1/21 Communications et synchronisations Système L3, 2014-2015 1/21 Le problème des philosophes (Dijkstra 1965) Cinq philosophes sont assis autour d une table ronde Chaque philosophe a devant lui un plat de

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud Mai 2012 Yann Thoma (HES-SO / HEIG-VD

Plus en détail

Année 2008-2009. Les threads Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.

Année 2008-2009. Les threads Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed. Année 2008-2009 Les threads Java Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Présentation du problème Revenons quelques instants à nos animaux.

Plus en détail

Communication et et synchronisation en en Ada, en en C/Posix et et en en Java 1.5

Communication et et synchronisation en en Ada, en en C/Posix et et en en Java 1.5 Communication et et synchronisation en en Ada, en en C/Posix et et en en Java 1.5 Samia Bouzefrane Maître de Conférences CEDRIC CNAM samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra 1 Sommaire

Plus en détail

Communications et synchronisations

Communications et synchronisations Communications et synchronisations Polytech Paris-Sud Cycle ingénieur de la filière étudiant Louis Mandel Université Paris-Sud 11 Louis.Mandel@lri.fr année 2012/2013 Le problème des philosophes (Dijkstra

Plus en détail

JAVA - Compléments du cours 9

JAVA - Compléments du cours 9 JAVA - Compléments du cours 9 Nicolas Baudru Année 2008-2009 Exercice 1 (Création de threads) En Java, il existe deux méthodes pour créer des threads. La première étend la classe Thread : class MonThread

Plus en détail

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009 Institut Supérieur d Informatique Chapitre 02 Synchronisation des processus Dr. Mohamed-Wassim YOUSSEF 2009 [www.wassimyoussef.info] Systèmes d exploitation avancées 1 ING ISI 1 ére année Ingénieur en

Plus en détail

Programmation concurrente en java

Programmation concurrente en java Programmation concurrente en java M. Belguidoum Université Mentouri de Constantine Département Informatique M. Belguidoum (UMC) Programmation concurrente 1 / 29 Plan 1 Introduction 2 Création d'un thread

Plus en détail

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

Plus en détail

Programmation multitâches avec les Threads

Programmation multitâches avec les Threads Programmation multitâches avec les Threads A. Introduction A.1. Programmation multitâche Tous les systèmes d'exploitation actuels ont la possibilité d'effectuer plusieurs tâches en simultané. En effet,

Plus en détail

Les tâches et la synchronisation en langage Java

Les tâches et la synchronisation en langage Java Les tâches et la synchronisation en langage Java Les threads, les verrous, les sémaphores et les moniteurs en Java D après les cours de D. Genthial et B. Caylux Langage Java Threads et synchronisation

Plus en détail

Exclusion mutuelle Synchronisation avancée. Programmation parallèle et concurrente

Exclusion mutuelle Synchronisation avancée. Programmation parallèle et concurrente Exclusion mutuelle Synchronisation avancée Programmation parallèle et concurrente Problématique Synchronisation = essentielle si utilisation de plusieurs threads Développement d'applications robustes 2

Plus en détail

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr 4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs

Plus en détail

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008 Programmation Multi-Thread - partie 1 November 13, 2008 pourquoi ça ne marche pas? et alors? introduction aux threads threads : pourquoi ça ne marche pas? et alors? un nouveau point d entrée (une fonction

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Introduction : les processus. Introduction : les threads. Plan

Introduction : les processus. Introduction : les threads. Plan IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres

Plus en détail

Cours 3: Coopération entre processus: Synchronisation + Communication

Cours 3: Coopération entre processus: Synchronisation + Communication Cours 3: Coopération entre processus: Synchronisation + Communication Coopération entre processus & Synchronisation + Communication 1. Introduction 2. Rendez-vous de N entités 3. Producteur(s) / Consommateur(s)

Plus en détail

Cours 3: Coopération entre processus: Synchronisation + Communication

Cours 3: Coopération entre processus: Synchronisation + Communication Cours 3: Coopération entre processus: Synchronisation + Communication Coopération entre processus & Synchronisation + Communication 1. Introduction 2. Rendez-vous de N entités 3. Producteur(s) / Consommateur(s)

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

POSIX threads (programmation concurrente) Les threads. Les fils d exécution : threads ou processus légers. Introduction

POSIX threads (programmation concurrente) Les threads. Les fils d exécution : threads ou processus légers. Introduction POSIX threads (programmation concurrente) François Broquedis, Grégory Mounié, Matthieu Ospici, Vivien Quéma d après les œuvres de Jacques Mossière et Yves Denneulin Introduction Moniteur Exclusion mutuelle

Plus en détail

Plan du cours 5:Threads

Plan du cours 5:Threads Plan du cours 5:Threads introduction Définition Création des Threads Gestion des priorités Synchronisation Page : 1 Introduction(1) Les structure de contrôle: If.. Else.. While Switch. Try..catch.. Offrent

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

Programmation Multi-Threading en Java

Programmation Multi-Threading en Java Programmation Multi-Threading en Java Christophe Gravier, Frédérique Laforest, Julien Subercaze Télécom Saint-Étienne Université Jean Monnet {prénom.nom}@univ-st-etienne.fr FI2_INFO4 2012 2013 1 / 35 Plan

Plus en détail

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com Systèmes d Exploitation temps réel 1 2 Plan de l intervention 1. Introduction aux Systèmes Temps Réel 2. Programmation concurrente Synchronisation et communication Besoin en facultés temporelles 3. Ordonnancement

Plus en détail

Multi-threading. Mécanismes de Synchronisation

Multi-threading. Mécanismes de Synchronisation Multi-threading Mécanismes de Synchronisation 1 Exclusion Mutuelle - Mutex Producteurs / Consommateur - Sémaphores 2 Accès en Exclusion Mutuelle Exemple d'une liste d'objects partagée: Gérée en LIFO (Last

Plus en détail

Notion de thread (1/2)

Notion de thread (1/2) Notion de thread (1/2) La machine virtuelle java (JVM) permet d'exécuter plusieurs traitements en parallèle (en pratique, ils s'exécutent par tranche et en alternance sur le processeur). Ces traitements

Plus en détail

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2 5 Moniteurs Motivation = les sémaphores peuvent être utilisés pour résoudre à peu près n importe quel problème d exclusion mutuelle ou synchronisation... mais, les sémaphores possèdent certains désavantages:

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

Plus en détail

Exercices de programmation concurrente (PCO) semestre printemps 2014-2015. Exclusion mutuelle, synchronisation, coordination

Exercices de programmation concurrente (PCO) semestre printemps 2014-2015. Exclusion mutuelle, synchronisation, coordination Prof. Yann Thoma Exercices de programmation concurrente (PCO) semestre printemps 2014-2015 Exclusion mutuelle, synchronisation, coordination Question 1: Exclusion mutuelle Soit les deux tâches T 0 et T

Plus en détail

1 Le Parking revisité

1 Le Parking revisité Module I6 - Manipulation de threads II 13 décembre 2012 1 Le Parking revisité Une société de gestion de parkings de voitures souhaite mettre en place un système automatique d affichage en temps réel de

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Synchronisation par. Rappels. Plan. Conditions et moniteurs (1/7) Inf 431 Cours 11. jeanjacqueslevy.net

Synchronisation par. Rappels. Plan. Conditions et moniteurs (1/7) Inf 431 Cours 11. jeanjacqueslevy.net Rappels Inf 431 Cours 11 un processus t (Thread) est un programme qui s exécute Synchronisation par mémoire partagée tstart lance l exécution concurrente de la méthode trun de t tinterrupt signale qu on

Plus en détail

Programmation concurrente Problématiques associées. Chap #3.2

Programmation concurrente Problématiques associées. Chap #3.2 Programmation concurrente Problématiques associées Chap #3.2 1 Introduction L exécution simultanée de plusieurs tâches concurrentes ne s effectue pas sans difficultés. Plusieurs threads peuvent accéder

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

Parallélisme. (Basé sur Concepts of Programming Languages, 8 th edition, by Robert W. Sebesta, 2007)

Parallélisme. (Basé sur Concepts of Programming Languages, 8 th edition, by Robert W. Sebesta, 2007) Parallélisme (Basé sur Concepts of Programming Languages, 8 th edition, by Robert W. Sebesta, 2007) 1 Les différents types de Parallélisme Le Parallélisme dans l'exécution de logiciel peut se produire

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

CEG4566/CSI4541 Conception de systèmes temps réel. Chapitre 8 - Communication et synchronisation dans les systèmes temps réel

CEG4566/CSI4541 Conception de systèmes temps réel. Chapitre 8 - Communication et synchronisation dans les systèmes temps réel CEG4566/CSI4541 Conception de systèmes temps réel Chapitre 8 - Communication et synchronisation dans les systèmes temps réel Sommaire 8.1 Objets partagés et exclusion mutuelle 8.2 Moniteurs et synchronisation

Plus en détail

ED : Construction d'interfaces graphiques en Java

ED : Construction d'interfaces graphiques en Java ED : Construction d'interfaces graphiques en Java Le but de cet exercice est d'écrire un code Java de la construction de l'interface graphique et de la réaction des actions de l'utilisateur sur une application

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Algorithmique & Programmation (INF 431)

Algorithmique & Programmation (INF 431) Algorithmique & Programmation (INF 431) Pottier 4 juin 2014 1 2 3 évoluées 4 Le problème de l exclusion 5 Les verrous 6 Règles d utilisation et des verrous 7 Une communication peu coûteuse... Les processus

Plus en détail

ESSI 2 Programmation concurrente TD2 : sémaphores et moniteurs en Java

ESSI 2 Programmation concurrente TD2 : sémaphores et moniteurs en Java ESSI 2 Programmation concurrente TD2 : sémaphores et moniteurs en Java JF Lalande, Michel Cosnard, Fabrice Peix 26 Avril 2006 inspiré des excellents TDs de Jean-Paul Rigault 1 Le coiffeur dormeur Il s

Plus en détail

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector l tutorial Interfaces. l Stack

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

Plus en détail

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

Algorithmique & Programmation (INF 431)

Algorithmique & Programmation (INF 431) Algorithmique & Programmation () Pottier 4 juin 2014 4 juin 2014 1 / 84 Une communication peu coûteuse... Les processus légers : partagent le tas et les variables globales, donc peuvent communiquer de

Plus en détail

Etat de l art de Java temps réel Ecole d été Temps Réel Nancy 2005 Marc richard-foy

Etat de l art de Java temps réel Ecole d été Temps Réel Nancy 2005 Marc richard-foy Etat de l art de Java temps réel Ecole d été Temps Réel Nancy 2005 Marc richard-foy Le langage Java - Copyright 2004 - AONIX. Tous droits réservés. Page 1 Plan 1. Concepts et exemples de la concurrence

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

Projet de Programmation

Projet de Programmation Projet de Programmation Système : Sémaphores et synchronisation de threads. Le problème du barbier : conception d une application multithreadée, synchronisée avec des sémaphores et des locks à la norme

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Le problème des lecteurs et rédacteurs : La communication par envoi de messages. définition. Les processus lecteurs et rédacteurs

Le problème des lecteurs et rédacteurs : La communication par envoi de messages. définition. Les processus lecteurs et rédacteurs Le problème des lecteurs et rédacteurs définition Ce problème généralise celui de l exclusion mutuelle. On distingue deux types de processus : Les lecteurs (readers) qui lisent uniquement l information

Plus en détail

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

Plus en détail

On appelle variable condition une var qui peut être testée et

On appelle variable condition une var qui peut être testée et Un concept plus général: g Variables condition On appelle variable condition une var qui peut être testée et endort le thread qui la teste si la condition est fausse le réveille quand la condition devient

Plus en détail

Les tâches et la synchronisation en langage Java

Les tâches et la synchronisation en langage Java Les tâches et la synchronisation en langage Java Les threads, les verrous, les sémaphores et les moniteurs en Java D après les cours de D. Genthial et B. Caylux Langage Java Threads et synchronisation

Plus en détail

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus Corrigé de l examen de systèmes opératoires Module Synchronisation des processus 2ième Année Informatique et Mathématiques Appliquées 17 Novembre 1999 1 Les sémaphores 1. Donner la définition d un sémaphore

Plus en détail

Threads. Threads. USTL http://www.lifl.fr/ routier 1

Threads. Threads. USTL http://www.lifl.fr/ routier 1 Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un

Plus en détail

Précis de vocabulaire Orienté Objet

Précis de vocabulaire Orienté Objet Dernière Mise à jour : Mars 2007 Précis de vocabulaire Orienté Objet 1 Questions Expliquer et donner un exemple pour chacun des concepts suivants 1. Qu'est-ce qu'un objet? 2. Qu'est-ce qu'une classe? 3.

Plus en détail

Processus non indépendants : accès concurrents aux ressources

Processus non indépendants : accès concurrents aux ressources Agenda Synchronisation et communication entre processus Schémas classiques de synchronisation 1 Introduction Système multiprocessus L'ordonnancement "entrelace" les exécutions P1 P2 P3 F Processus non

Plus en détail

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Hélène Toussaint, juillet 2014 Sommaire 1. Efficacité du std::sort... 1 1.1. Conditions expérimentales... 1 1.2. Tableaux de

Plus en détail

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException...

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... Cours 12 Les exceptions vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... F.Gayral 1 Les exceptions, vous connaissez... public class

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Analyse statique de programmes Typage et analyse statique au sein de Java

Analyse statique de programmes Typage et analyse statique au sein de Java Analyse statique de programmes Typage et analyse statique au sein de Java Master Professionnel Informatique spécialité FSIL/FSI Jean-Marc Talbot jean-marc.talbot@lif.univ-mrs.fr Aix-Marseille Université

Plus en détail

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed. Année 2008-2009 Les exceptions Java Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Introduction Supposez que vous écrivez un programme qui accède

Plus en détail

LOG4430 : Architecture et conception avancée

LOG4430 : Architecture et conception avancée LOG4430 : Architecture et conception avancée Abdou Maiga Patrons pour la conception d applications distribuées Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc,

Plus en détail

Programmation Concurrente, Réactive et Répartie

Programmation Concurrente, Réactive et Répartie Programmation Concurrente, Réactive et Répartie Cours N 3 Emmanuel Chailloux Master d Informatique Université Pierre et Marie Curie année 2012-2013 Cours 3 - Programmation Concurrente, Réactive et Répartie

Plus en détail

Programmation Par Objets et Langage Java

Programmation Par Objets et Langage Java Programmation Par Objets et Langage Java Partie I. Fondement de la POO (Modularité/Abstraction) Najib Tounsi Ecole Mohammadia d'ingénieurs, Rabat Année 2011/2012 1ère année Génie Informatique http://www.emi.ac.ma/ntounsi/cours/java/poojavapart-1.pdf

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Programmation orientée objets

Programmation orientée objets POO : mais pourquoi? La Programmation Orientée Objets (POO) a pour but final de faciliter le débogage, la maintenance et la mise à jour d'applications complexes. C++, Java et Scala sont des exemples de

Plus en détail

Les entrées/sorties Java (sérialisation, accès aux chiers et connexion réseau)

Les entrées/sorties Java (sérialisation, accès aux chiers et connexion réseau) Année 2008-2009 Les entrées/sorties Java (sérialisation, accès aux chiers et connexion réseau) Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Introduction

Plus en détail

Chapitre 3. Les structures de base : listes, piles et files

Chapitre 3. Les structures de base : listes, piles et files Chapitre 3 Les structures de base : listes, piles et files 1. Introduction Le but de ce chapitre est de décrire des représentations des structures de base utilisées en informatique telles les listes en

Plus en détail

Série n 1 / Solutions

Série n 1 / Solutions Série n 1 / Solutions Exercice n 1 - les deux processus partagent une variable booléenne interesse qui sera vraie si le processus est en section critique ou demande à y rentrer, et fausse sinon, /* contexte

Plus en détail

ARCHITECTURES MATÉRIELLES SYSTÈMES INFORMATIQUES

ARCHITECTURES MATÉRIELLES SYSTÈMES INFORMATIQUES CENTRALISÉE RÉPARTIE mémoire locale mémoire locale mémoire locale mémoire locale mémoire locale mémoire locale processeur processeur processeur processeur processeur processeur instructions messages MÉMOIRE

Plus en détail

Exception en Java. Le principe général des exceptions. La syntaxe des exceptions.

Exception en Java. Le principe général des exceptions. La syntaxe des exceptions. Exception en Java. Exception en Java....1 Le principe général des exceptions...1 La syntaxe des exceptions....1 La hiérarchie des exceptions:...2 Exemple d'exception....3 Exception et signature de service....4

Plus en détail

Rapport Écriture d'un compilateur

Rapport Écriture d'un compilateur Rapport Écriture d'un compilateur Traduction I ; 2011-2012 Julien VAUBOURG Pierrick LAUFFENBURGER 2A / TRS Introduction Durant ce projet, nous avons travaillé sur la conception d'un compilateur, qui transforme

Plus en détail

Threads Java 1.5 Synchronisation

Threads Java 1.5 Synchronisation Threads Java 1.5 Synchronisation Avancée Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 23 février 2012 Arnaud Labourel (Université de Provence) Threads Java Synchronisation

Plus en détail

1 Questions de cours (4,5 points) 2 Multiplication avec des PRAM (4 points)

1 Questions de cours (4,5 points) 2 Multiplication avec des PRAM (4 points) Université de Provence MASTER INFORMATIQUE Programmation Parallèle et Distribuée 2010-2011 Programmation Parallèle et Distribuée Partiel jeudi 10 mars 2011 2h00 Aucun document autorisé. Les réponses doivent

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr Remerciements Michel Riveill 1

Plus en détail

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Syntaxe du langage JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Structure du langage Les types primitifs boolean(true/false), byte (1 octet), char (2 octets), short (2 octets), int (4 octets),

Plus en détail

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente à la programmation concurrente et sémaphores Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under a Creative

Plus en détail

Génie logiciel et design de systèmes temps

Génie logiciel et design de systèmes temps Génie logiciel et design de systèmes temps réel H. Mounier 0-0 MOTIVATIONS Utiliser des techniques modernes de conception de logiciel Ceci pour assurer la fiabilité Ces techniques doivent être adaptées

Plus en détail

4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs

Plus en détail

FSAB1402: Informatique 2 Le Langage Java et les Exceptions

FSAB1402: Informatique 2 Le Langage Java et les Exceptions FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département d Ingénierie Informatique, UCL pvr@info.ucl.ac.be Ce qu on va voir aujourd hui Nous allons voir quelques concepts de

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Gestion des threads Gestion des timers Gestion des threads Gestion des timers Programmation - Threads - Nicolas Malandain 1 Gestion des threads Principe Création Cycle Synchronisation Collections May 1,

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

Plus en détail

Eléments de génie logiciel. Pratique de la programmation orientée-objet Michel Schinz 2014-02-17

Eléments de génie logiciel. Pratique de la programmation orientée-objet Michel Schinz 2014-02-17 Eléments de génie logiciel Pratique de la programmation orientée-objet Michel Schinz 2014-02-17 1 Génie logiciel Le développement de programmes conséquents comme le projet requiert des techniques d organisation

Plus en détail

Eléments de génie logiciel. Paquetages. Génie logiciel. Nom unique des entités. Pratique de la programmation orientée-objet Michel Schinz 2014-02-17

Eléments de génie logiciel. Paquetages. Génie logiciel. Nom unique des entités. Pratique de la programmation orientée-objet Michel Schinz 2014-02-17 Génie logiciel Eléments de génie logiciel Pratique de la programmation orientée-objet Michel Schinz 2014-02-17 Le développement de programmes conséquents comme le projet requiert des techniques d organisation

Plus en détail

TP TUTORIEL. GEDsismik

TP TUTORIEL. GEDsismik TP TUTORIEL GEDsismik TP TUTORIEL Table of Contents A propos de ce document...1 Langage orienté objet...2 Notion d'objet...2 De l'utilité d'une pile...2 Création du type Pile...2 Interface...3 Implémentation

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Compléments sur les PThreads. Jean-Louis PAZAT IRISA / INSA

Compléments sur les PThreads. Jean-Louis PAZAT IRISA / INSA 1 Compléments sur les PThreads Jean-Louis PAZAT IRISA / INSA Exemple de threads utilisateur: Threads Posix Interface portable de programmation (API) Fonctionnalités création/destruction de Threads Synchronisation

Plus en détail

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions Arbres binaires Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions FMIN220 Structures de données Université de Montpellier 2015 FMIN220 (UM)

Plus en détail

Composite, Interpréteur et Visiteur

Composite, Interpréteur et Visiteur Composite, Interpréteur et Visiteur Cnam Paris jean-michel Douin Version du 10 Octobre 2003 Notes de cours java : les patterns Composite, Interpréteur et Visiteur Les notes et les Travaux Pratiques sont

Plus en détail

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Ce support est très largement inspiré du livre et du cours de S. Krakowiak S. Krakowiak Java Remote Method Invocation 1 / 25 Intérêt des objets pour la construction d applications

Plus en détail

Concurrence API Concurrente. Rémi Forax

Concurrence API Concurrente. Rémi Forax Concurrence API Concurrente Rémi Forax ThreadLocal Permet de déclarer des variables qui seront locales à une thread Une instance gère les différentes valeurs d'une même variable (une valeur par thread)

Plus en détail