Concurrence

  1. ce qu'est un thread
  2. parallèle pourquoi c'est bien : algo + complexité
  3. faire ce qui marche si pas partagé :
    1. serveur -> thread
    2. calcul image fractale
  4. si partagé :
    1. opération atomique (!)
    2. mutex
    3. non blocking avec opérations atomiques

https://en.wikipedia.org/wiki/Concurrency_pattern

https://www.classes.cs.uchicago.edu/archive/2018/spring/12300-1/lab6.html

TBD :

  • concurrence = de façon indépendante
  • parallèlisme = en même temps

accès concurrent

atomicité.

set and check.

algorithme de Dekker

Atomicité

https://en.wikipedia.org/wiki/Read–modify–write et 3 opération dans read modify write

plusieurs threads qui font +1. Si atomique ok, sinon peut poser des soucis.

Threads

https://www.cs.dartmouth.edu/~campbell/cs50/threads.html

locks ? thread C thread safety https://web.mit.edu/6.005/www/fa14/classes/18-thread-safety/ programming with threads playlist

https://fr.wikipedia.org/wiki/Situation_de_compétition

si pas de mutex : race condition

si mutex :

non blocking algo thread C++

blocking algo :

non blocking :