Oracle Pro*C/C++ et les applications multithreadées

Par gtruong, 2 mars, 2024

Aujourd'hui, on va parler des applications multithreadées. Si tu te demandes ce que c'est, je vais te l'expliquer en langage simple.

#### Qu'est-ce que les threads ?

Imagine que tu as un gros programme qui doit faire plusieurs choses en même temps, comme charger une page web tout en vérifiant tes mails. Les threads, c'est un peu comme des assistants qui travaillent ensemble dans un même programme. Chaque thread peut faire une tâche différente sans attendre que les autres aient fini.

#### Contextes d'exécution en Pro*C/C++

En Pro*C/C++, on parle de "contextes d'exécution". C'est comme un cadre où un thread peut faire ses trucs sans interférer avec les autres. Ça permet de garder les choses bien organisées.

Image retirée.

### Modèles d'utilisation des contextes d'exécution

Il y a deux façons principales d'utiliser ces contextes :

1.  **Partage d'un Seul Contexte :** Tous les threads utilisent le même cadre pour faire leur boulot. C'est comme si plusieurs ouvriers travaillaient dans le même bureau.
2.  **Chaque Thread a son Propre Contexte :** Chaque thread a son propre bureau. C'est bien pour éviter que les ouvriers se marchent sur les pieds.

### Fonctionnalités pour les applications multithreadées

Quand tu fais des programmes multithreadés avec Pro*C/C++, tu as des outils pour rendre tout ça plus facile :

-   **Option THREADS :** Ça permet de dire au programme que tu veux qu'il soit capable de gérer plusieurs tâches à la fois.
-   **Instructions SQL Spéciales :** Elles aident à dire au programme comment gérer les tâches SQL quand il y a plusieurs threads qui travaillent en même temps.

### Exemple multithreadé

Imaginons qu'on ait un gros programme avec plusieurs parties qui doivent se faire en même temps. Chaque partie peut être gérée par un assistant différent, et ils peuvent tous travailler ensemble sans se gêner.

### Pool de connexions

Un pool de connexions, c'est un peu comme un groupe de taxis prêts à partir. Plutôt que d'appeler un taxi à chaque fois que tu as besoin d'aller quelque part, tu as un groupe de taxis prêts à partir. C'est plus rapide et plus efficace !
##
Voilà, j'espère que maintenant tu comprends un peu mieux ce que sont les applications multithreadées et comment elles fonctionnent. Si tu as des questions, n'hésite pas !

### Références
- [Pro*C/C++ Programmer's Guide : Multithreaded Applications](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_11thr.htm#i1000335)

- Kyte, T. (2010). _Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g Programming Techniques and Solutions._ Apress.

- McDonald, C., Katz, C., & Beck, C. (2009). _Mastering Oracle PL/SQL: Practical Solutions._ Apress.

Étiquettes

Commentaires