Pas encore inscrit ? Creez un Overblog!

Créer mon blog

Créer des threads en langage C (explications, principes de base, conseils)

Dans les systèmes d'exploitation modernes, une application peut se diviser en plusieurs fils. Les threads en C via POSIX, sont une notion à connaître, puisqu'ils permettent d'une part l'amélioration des performances sur un processeur multi-core, mais aussi de séparer chaque tâche et pouvoir en exécuter plusieurs "en même temps". Quelques concepts seront traités dans cet article, vous permettant de créer un thread, le fermer et protéger vos données.

Ouvrir un thread

La création d'un thread est assez simple. On utilisera la fonction "pthread_create", c'est aussi simple que cela. Elle comprend quatre arguments :
- int pthread_create(pthread_t * pth, pthread_attr_t *att, void * (*function), void * arg), où pth est un pointeur sur pthread_t, donnée qui stockera l'identifiant du thread créé,
- Un pointeur sur pthread_attr_t, structure qui vaut NULL par défaut, mais qui peut aussi contenir des modifications du thread.
- Le troisième argument est un pointeur sur fonction qui fonctionnera comme la fonction "main". Le thread s'arrêtera dès qu'il sortira de la fonction.
- Le dernier argument est similaire aux arguments argc et argv de la fonction "main". La fonction "pthread_create" renvoie un entier qui vaut 0 si la fonction s'est bien déroulée, et un autre entier sinon.

Fermer un thread

Dans la fonction du thread, on pourra utiliser "pthread_exit" pour terminer la fonction, ou tout simplement retourner un entier. En dehors de la fonction en revanche, la fonction "int pthread_cancel(pthread_t thread)" permettra d'arrêter un thread à partir de son identifiant. Elle renvoie 0 en cas de succès, un autre entier sinon.

Compilation

Il faudra penser à inclure l'en-tête suivant afin d'utiliser les fonctions de la librairie pthread :
#include
À la compilation, il faudra tout simplement ajouter l'option -l en appelant gcc, comme ceci : gcc programme.o -o programme -lpthread.
Votre programme est désormais compilé.

Protéger vos données

Les applications multi-thread peuvent utiliser un mutex (similaire au mot-clé "synchronized" pour les threads en Java) ou un sémaphore pour protéger vos données. Techniquement, un mutex doit être déverrouillé (pthread mutex unlock) par le même thread qui l'a verrouillé (pthread mutex lock), mais certains systèmes d'exploitation autorisent n'importe quel thread à le faire.
Le sémaphore a un autre fonctionnement. Elle compte jusqu'à zéro, donnant donc un certain nombre d'accès aux threads l'utilisant. Une fois le sémaphore à zéro, un thread devra l'incrémenter pour l'utiliser de nouveau. Une sémaphore n'autorisant qu'un seul accès aux données agira comme un mutex, à la différence que n'importe quel thread pourra y accéder.

Articles de la même catégorie Informatique

À quoi reconnait-on les vraies licences Microsoft ? (conseils)

À quoi reconnait-on les vraies licences Microsoft ? (conseils)

Pirater Windows, c'est quoi ? Les utilisateurs ne doivent pas dire qu'ils piratent Windows mais qu'ils utilisent une version piratée. Les "pirates" partent d'un système d'exploitation légal qu'ils modifient à leur sauce, on y trouve souvent les modifications suivantes. Apprenez à reconnaître les vraies licences Microsoft.
Comment bien utiliser le site radarsfixes.com ? (intérêt, fonctionnement, astuces)

Comment bien utiliser le site radarsfixes.com ? (intérêt, fonctionnement, astuces)

Si vous souhaitez connaître l'emplacement exact des radars fixes en France, il est possible d'utiliser le site Radarsfixes.com. En effet, ce site permet notamment de vous indiquer où sont les radars dans plusieurs pays du monde, dont la France et l'Angleterre. Voici une présentation détaillée du site, ainsi que des conseils et des astuces pour l'utiliser correctement.
Micro Webcam : guide d'achat

Micro Webcam : guide d'achat

Pour communiquer avec la Vidéo et le Son, la Webcam est le périphérique dont il faut équiper votre ordinateur car il est susceptible de jouer à bien ce rôle. Les Webcams sont des Appareils pratiques dont la facilité d’utilisation est reconnue par ces utilisateurs. La Webcam contient généralement un Micro pour le Son. Dans cet article, il sera question de vous aider à acheter votre Micro Webcam.
Comment changer le format d'une vidéo ?

Comment changer le format d'une vidéo ?

Un format donné d’une vidéo est spécifique vis-à-vis d’un lecteur ou d’un logiciel. Ainsi, si un format n’est pas reconnu par ces derniers, alors il ne pourra pas être lu. D’où la nécessité de convertir un format vidéo en un autre qui soit compatible avec le lecteur ou le logiciel. Pour changer le format des vidéos, il suffit d’installer un logiciel conforme au format à transformer et à celui qu’on désir obtenir. Les formats vidéo les plus rencontrés sont : WMV, FLV, MOV, AVI, DivX, format DVD, etc.