Articles of multithreading

Script shell pour le multithreading d’un processus

Je suis un bioinformaticien et je me suis récemment retrouvé coincé dans un problème qui nécessite des scripts pour accélérer mon processus. Nous avons un logiciel appelé PHASE et Command que je tape dans ma ligne de commande pour tirer le logiciel est ./PHASE test.inp test.out où PHASE est le nom du programme et test.ip […]

Communication interprocessus sous UNIX

Je dois implémenter un mécanisme en C sur SOLARIS 9 SPARC afin de permettre une communication interprocessus. En bref, je dois implémenter un programme multithread dans lequel le père du thread qui reçoit une fois un signal, ou ce que vous voulez, doit déclencher un ensemble de threads chargés de crypter les fichiers. Je ne […]

façons d’implémenter un timer dans un thread de travail en C

J’ai un thread de travail qui obtient du travail de pipe. Quelque chose comme ça void *worker(void *param) { while (!work_done) { read(g_workfds[0], work, sizeof(work)); do_work(work); } } Je dois implémenter une timer de 1 seconde dans le même thread pour certaines tâches de comptabilité. Voici ce que je pense: void *worker(void *param) { prev_uptime […]

Unix Domain Socket concurrent lecture / écriture sur les deux extrémités

Pour de nombreuses raisons, je souhaiterais utiliser des sockets de domaine unix pour IPC entre deux processus. Chaque processus réagit aux événements asynchrones d’un type spécifique du monde extérieur en écrivant sur le socket et en communiquant cet événement au second processus. En même temps, chaque processus doit également lire les données provenant de l’autre […]

Conversion en application multi-threaded Socket

Comme je suis en train de faire ce projet uniquement en C, je n’ai jusqu’à ce point utilisé que mon serveur Web en tant qu’application mono-thread. Cependant, je n’en veux plus! J’ai donc le code suivant qui gère mon travail. void BeginListen() { CreateSocket(); BindSocket(); ListenOnSocket(); while ( 1 ) { ProcessConnections(); } } Maintenant, […]

Dans le programme AC, tout le processus se termine lorsque le thread principal se termine?

Dans linux, tout le processus se termine lorsque le thread principal se termine, peu importe comment il se termine, par la fonction exit () ou retourne de main. Si le thread principal revient de main (), il retournera au “runtime C” appelé crt.o ou quelque chose comme ça. Dans le crt.o, dont le code c […]

Ce programme multithread est-il plus performant que le programme non multithread?

Un de mes collègues m’a demandé d’écrire un devoir pour lui. Bien que cela ne soit pas trop éthique, je l’ai fait, je plaide coupable. Voici comment le problème se pose: Écrivez un programme en C où la séquence 1 2 + 2 2 + … + n 2 est calculée. Supposons que n soit […]

Est-ce que write () est sûr d’être appelé à partir de plusieurs threads simultanément?

En supposant que j’ai ouvert dev / poll comme mDevPoll , est-ce que mDevPoll appeler le code comme ça struct pollfd tmp_pfd; tmp_pfd.fd = fd; tmp_pfd.events = POLLIN; // Write pollfd to /dev/poll write(mDevPoll, &tmp_pfd, sizeof(struct pollfd)); … simultanément à partir de plusieurs threads, ou dois-je append ma propre primitive de synchronisation autour de mDevPoll […]

Filetage C ++ UNIX

Je fais un projet avec le threading dans UNIX et C ++. Fondamentalement, il y a un thread producteur et 5 threads consommateurs. Le thread producteur ajoute des nombres incrémentés dans une queue à des moments aléatoires, et les threads consommateurs interrogent le q essayant de le supprimer. Pour une raison quelconque, mon q.size () […]

Comment vérifier si libxml2 est initialisé

Selon ce document sur le multithreading, il est obligatoire d’appeler xmlInitParser() avant d’utiliser la bibliothèque simultanément. Voici le problème. J’ai codé une bibliothèque (pas un exécutable) en utilisant libxml2 et cela devrait garantir la simultanéité. J’ai donc décidé d’appeler la fonction init sur la fonction init de ma bibliothèque. Cependant, le document indique que la […]