Articles of pthreads

Conséquences sur les performances d’un grand nombre de mutex

Supposons que j’ai un tableau de 1 000 000 d’éléments et un nombre de threads de travail, chacun manipulant des données dans ce tableau. Les threads de travail peuvent mettre à jour des éléments déjà remplis avec de nouvelles données, mais chaque opération est limitée à un seul élément de tableau et est indépendante des […]

Fonction qui prend un pthread en entrée et le suspend

J’essaie de porter en temps réel Thread_Mesortingc d’ExpressLogic dans POSIX, afin d’parsingr les correctifs PREEMPT_RT pour Linux, Xenomai et RTAI dans le cadre de ma thèse. Ils fournissent un fichier source C avec les fonctions suivantes, que vous devez implémenter pour que le sharepoint référence fonctionne: void tm_initialize(void (*test_initialization_function)(void)); int tm_thread_create(int thread_id, int priority, void […]

Code intermédiaire résultant des pragmas OpenMP

Existe-t-il un moyen de mettre la main sur le code source intermédiaire produit par les pragmas OpenMP? Je voudrais voir comment chaque type de pragmas est traduit. À votre santé.

Comment puis-je tuer un pthread qui est dans une boucle infinie, de l’extérieur de cette boucle?

Je crée un fil et je le mets dans une boucle infinie. Je reçois des memory leaks lors de la vérification du code avec valgrind . Voici mon code: #include #include void thread_do(void){ while(1){} } int main(){ pthread_t th; pthread_create(&th, NULL, (void *)thread_do, NULL); sleep(2); /* I want to kill thread here */ sleep(2); return […]

Une bibliothèque de type stdlib sur un environnement nu? (gestion de la mémoire et, espérons-le, du support pthread)

Existe-t-il une bibliothèque de type stdlib pour la programmation bare metal? J’essaye de construire un programme (supposé être construit sur linux) pour un environnement nu-metal. Le programme dépend de stdlib et de posix lib (malloc, calloc, realloc, free et pthread). Je vais le modifier pour un seul thread de toute façon. Je lisais https://www.ibm.com/developerworks/aix/tutorials/au-memorymanager/ et […]

Comment puis-je passer l’index d’une boucle for comme argument de pthread_create

J’utilise une boucle for pour créer un certain nombre de threads et passe l’index i comme argument comme suit: pthread_t p[count]; for (int i = 0; i < count; i++){ pthread_create(&p[i], NULL, &somefunc, (void*)&i); } Ensuite, je tente de récupérer la valeur de i: void *somefunc (void* ptr){ int id = *(int*)ptr; } Cependant, j’ai […]

C – Problème de transmission de message entre les threads à l’aide de files d’attente

J’essaie de faire passer des messages entre deux threads en utilisant une queue, mais je n’ai pas obtenu de résultat jusqu’à présent. Lorsque j’imprime le contenu du message après sa réception et avant son envoi, il ne semble garder que sa valeur dans la bande de roulement. Je dois l’implémenter avec 1 thread de serveur […]

Conserver les variables pthread locales

Existe-t-il un moyen, lors de l’utilisation de pthread.h sur un Linux GCC, de conserver les variables locales à la fonction de thread: int i = 42; // global instance of i int main() { pthread_t threads[2]; long t; pthread_create(&threads[t], NULL, ThreadFunction, (void *) t; pthread_create(&threads[t], NULL, ThreadFunction2, (void *) t; } Je me demande s’il […]

Sur quel kernel tourne un fil donné?

Existe-t-il une fonction ou un autre moyen de savoir, par programmation, sur quel kernel de quel processeur un thread donné de mon programme (pid) est exécuté? Les solutions OpenMP ou Pthreads pourraient m’aider, si possible. Merci.

Multiplication de masortingce dynamic avec Pthreads

Je suis un débutant en programmation de threads et en C en général, et j’essaie de comprendre comment réaliser une multiplication de masortingce simple avec Pthreads. Je veux créer un fil pour chaque colonne et mettre les résultats dans une masortingce de résultats. J’essaie de le faire de manière dynamic, ce qui signifie que l’utilisateur […]