Explore la cohérence de la mémoire, la cohérence, la faible cohérence et la cohérence séquentielle, en soulignant l'importance de la cohérence au niveau du langage et de la programmation sans course aux données.
Explore les moniteurs comme une construction de synchronisation fournissant l'exclusion mutuelle et la coopération entre les threads, avec des exemples comme le tampon d'un seul endroit.
Couvre l'implémentation de listes liées séparément en Java, en se concentrant sur des concepts tels que les nœuds, la gestion de la taille, l'ajout, la suppression et l'obtention d'éléments.
Couvre l'abstraction des threads dans les systèmes informatiques, en se concentrant sur la concurrence, le parallélisme et la gestion des threads à l'aide de l'API POSIX.
Couvre les bases de la programmation, y compris le cycle de développement d'un programme, forte dactylographie, stockage de données dans les variables Java, et les types de données primitives.
Couvre les bases de la programmation parallèle, y compris l'exploitation du parallélisme dans les algorithmes et l'importance d'éviter les conditions de race.
Couvre les primitives de verrouillage nécessaires pour empêcher les conditions de course dans la programmation multithread, en se concentrant sur l'exclusion mutuelle et les opérations atomiques.
Couvre les concepts d'interfaces Comparable et Comparator en Java, en expliquant comment les classes implémentent ces interfaces pour permettre la comparaison d'objets.
Explore la cohérence de la mémoire dans les systèmes multiprocesseurs, en discutant de la cohérence, des modèles de cohérence et des compromis entre les contraintes de commande et les performances.