Rice University

Programmation concurrente en Java

Ce cours fait partie de Spécialisation Programmation parallèle, concurrente et distribuée en Java

Enseigné en Anglais

Certains éléments de contenu peuvent ne pas être traduits

Vivek Sarkar

Instructeur : Vivek Sarkar

25 058 déjà inscrits

Inclus avec Coursera Plus

Cours

Familiarisez-vous avec un sujet et apprenez les fondamentaux

4.5

(655 avis)

|

94%

niveau Intermédiaire
Certaines connaissances prérequises
18 heures (approximativement)
Planning flexible
Apprenez à votre propre rythme

Compétences que vous acquerrez

  • Catégorie : Concurrence (informatique)
  • Catégorie : Acteur Modèle
  • Catégorie : Contrôle optimiste de la concurence
  • Catégorie : Concurrence Java

Détails à connaître

Certificat partageable

Ajouter à votre profil LinkedIn

Évaluations

4 quizzes

Cours

Familiarisez-vous avec un sujet et apprenez les fondamentaux

4.5

(655 avis)

|

94%

niveau Intermédiaire
Certaines connaissances prérequises
18 heures (approximativement)
Planning flexible
Apprenez à votre propre rythme

Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

Placeholder

Élaborez votre expertise du sujet

Ce cours fait partie de la Spécialisation Programmation parallèle, concurrente et distribuée en Java
Lorsque vous vous inscrivez à ce cours, vous êtes également inscrit(e) à cette Spécialisation.
  • Apprenez de nouveaux concepts auprès d'experts du secteur
  • Acquérez une compréhension de base d'un sujet ou d'un outil
  • Développez des compétences professionnelles avec des projets pratiques
  • Obtenez un certificat professionnel partageable
Placeholder
Placeholder

Obtenez un certificat professionnel

Ajoutez cette qualification à votre profil LinkedIn ou à votre CV

Partagez-le sur les réseaux sociaux et dans votre évaluation de performance

Placeholder

Il y a 7 modules dans ce cours

Bienvenue à la programmation simultanée en Java ! Ce cours est conçu comme une série de trois parties et couvre un thème ou un ensemble de connaissances à travers des conférences vidéo, des démonstrations et des projets de codage.

Inclus

1 vidéo5 lectures1 devoir de programmation1 sujet de discussion

Dans ce module, nous allons nous familiariser avec les threads et les verrous, qui constituent les éléments de base de la programmation simultanée depuis plus de cinquante ans. Aujourd'hui, toutes les plates-formes informatiques prennent en charge les threads et les verrous sous une forme ou une autre et les mettent à la disposition des développeurs dans un large éventail de langages de programmation. Nous apprendrons comment les threads peuvent être créés, joints et synchronisés en utilisant des verrous structurés (par exemple, des instructions/méthodes synchronisées) et non structurés (par exemple, les bibliothèques java.util.concurrent) en Java. Nous découvrirons également de nouvelles classes de bogues qui peuvent survenir lorsque des programmes concurrents doivent accéder à des ressources partagées. Ces bogues sont appelés violations des garanties de vivacité/progrès et incluent les blocages (deadlock), les blocages (livelock) et l'inanition (starvation). Nous conclurons ce module en étudiant différentes solutions au problème classique des "philosophes à table", et nous utiliserons ces solutions pour illustrer des cas de blocage, de blocage en direct et de famine.

Inclus

6 vidéos6 lectures1 quiz1 devoir de programmation

Dans ce module, nous apprendrons différentes approches pour coordonner les accès aux ressources partagées sans rencontrer les bogues de blocage ou de verrouillage étudiés précédemment. Les sections critiques/isolées sont des constructions de programmation concurrente de plus haut niveau (par rapport aux verrous) qui simplifient la mise en œuvre de l'exclusion mutuelle en garantissant l'absence de deadlocks et de livelocks. L'isolation basée sur les objets assouplit les contraintes imposées par les sections critiques en permettant de spécifier l'exclusion mutuelle par objet, comme l'illustre l'exemple de l'arbre enchevêtré (Spanning Tree). Les variables atomiques de Java représentent un cas important, mais restreint, d'isolation basée sur l'objet qui est mis en œuvre efficacement sur toutes les plates-formes matérielles. Enfin, nous apprendrons comment l'isolation basée sur l'objet peut être encore assouplie avec les modes d'accès en lecture/écriture.

Inclus

6 vidéos6 lectures1 quiz1 devoir de programmation

Rejoignez le professeur Vivek Sarkar qui s'entretient avec l'ingénieur logiciel Shams Imam, dans leurs bureaux du centre-ville de Houston, au Texas, sur les threads, les verrous, les blocages, les constructions de haut niveau et de bas niveau, et l'importance de la programmation concurrente

Inclus

2 vidéos1 lecture

Dans ce module, nous allons apprendre une autre approche de haut niveau de la programmation concurrente appelée le modèle "Acteur". Une différence majeure entre le modèle Acteur et le modèle Sections isolées est qu'il n'y a pas de course aux données possible dans le modèle Acteur parce qu'il n'autorise aucune forme de variables partagées. Cependant, comme dans tous les modèles de programmation concurrente, des formes supérieures de non-déterminisme sont toujours possibles dans le modèle Actor en raison d'un asynchronisme inhérent à l'ordre dans lequel les messages peuvent être délivrés. Nous étudierons plusieurs exemples de concurrence utilisant le modèle Actor, y compris l'algorithme classique du tamis d'Eratosthène pour générer des nombres premiers, ainsi que des modèles producteur-consommateur avec des tampons illimités et limités.

Inclus

6 vidéos6 lectures1 quiz1 devoir de programmation

Dans ce module, nous étudierons les structures de données concurrentes, qui constituent une couche logicielle essentielle dans tous les systèmes de programmation multithread. Tout d'abord, nous apprendrons ce qu'est la Concurrence Optimiste, un modèle multithread important dans lequel deux threads peuvent progresser de manière "optimiste" sur le travail qui leur est assigné sans se soucier des conflits mutuels, et en vérifiant uniquement les conflits avant de "livrer" les résultats de leur travail. Nous étudierons ensuite la structure de données largement utilisée des files d'attente concurrentes. Même si les API permettant d'utiliser les files d'attente concurrentes sont très simples, leur mise en œuvre à l'aide du modèle Optimistic Concurrency peut s'avérer complexe et sujette aux erreurs. À cette fin, nous apprendrons également la notion formelle de linéarisation afin de mieux comprendre les exigences de correction pour les structures de données concurrentes. Nous étudierons ensuite les cartes de hachage concurrentes, une autre structure de données concurrente largement utilisée. Enfin, nous discuterons d'un algorithme concurrent permettant de trouver un arbre d'extension minimum d'un graphe non orienté, un algorithme qui repose sur l'utilisation de structures de données concurrentes sous les couvertures.

Inclus

6 vidéos7 lectures1 quiz1 devoir de programmation

Les deux prochaines vidéos montreront l'importance d'apprendre la programmation parallèle et la programmation distribuée en Java. Le professeur Vivek Sarkar s'entretiendra avec des professionnels de l'industrie à Two Sigma sur la façon dont les thèmes de nos deux autres cours sont utilisés sur le terrain.

Inclus

2 vidéos1 lecture

Instructeur

Évaluations de l’enseignant
4.7 (52 évaluations)
Vivek Sarkar
Rice University
3 Cours61 877 apprenants

Offert par

Rice University

Recommandé si vous êtes intéressé(e) par Développement de logiciels

Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?

Felipe M.
Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’
Jennifer J.
Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’
Larry W.
Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’
Chaitanya A.
’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’

Avis des étudiants

Affichage de 3 sur 655

4.5

655 avis

  • 5 stars

    66,87 %

  • 4 stars

    24,73 %

  • 3 stars

    5,80 %

  • 2 stars

    1,06 %

  • 1 star

    1,52 %

GA
5

Révisé le 19 sept. 2020

FH
4

Révisé le 26 nov. 2020

JB
5

Révisé le 2 sept. 2017

Placeholder

Ouvrez de nouvelles portes avec Coursera Plus

Accès illimité à plus de 7 000 cours de renommée internationale, à des projets pratiques et à des programmes de certificats reconnus sur le marché du travail, tous inclus dans votre abonnement

Faites progresser votre carrière avec un diplôme en ligne

Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne

Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires

Améliorez les compétences de vos employés pour exceller dans l’économie numérique

Foire Aux Questions