Articles of multithreading

Comment puis-je suspendre un autre thread (pas celui en cours)?

J’essaie d’implémenter une simulation d’un microcontrôleur. Cette simulation n’est pas destinée à faire une représentation précise d’un cycle d’horloge spécifique d’un microcontrôleur mais à vérifier l’exactitude générale du code. J’ai pensé avoir un “thread principal” exécutant du code normal et un second thread exécutant le code ISR. Chaque fois qu’un ISR doit être exécuté, le […]

Temps Cpu impossible pour process / thread avec rusage

Je calcule le delta entre le temps processeur utilisé par un processus / thread, entre l’appel d’une certaine fonction. J’obtiens une valeur impossible pour le temps processeur, un certain temps le prochain appel retourne un temps processeur plus petit, ce qui est impossible. c’est le code que j’utilise pour calculer le temps CPU: u64 CpuTime::calculateCpuTime(bool […]

Manipulation de plus de 1024 descripteurs de fichiers, en C sous Linux

Je travaille sur un serveur de réseau fileté utilisant epoll (Edge sortingggered) et des threads et j’utilise httperf pour évaluer mon serveur. Jusqu’à présent, il fonctionne très bien ou presque exactement au rythme auquel les demandes sont envoyées. Jusqu’à la barrière 1024, où tout ralentit à environ 30 demandes / seconde. Fonctionnant sur Ubuntu 9.04 […]

Blocage du thread de thread C ++ Boost

J’ai un problème avec le code suivant: #include #include #include #include #include using namespace std; void f1(uint count) { while(count– > 0) { // boost::this_thread::sleep(boost::posix_time::millisec(1000)); sleep(1); } } void folkflore() { int res = fork(); //parent if ( res ) { wait(NULL); } else { unsigned int x = 2; boost::thread tx(boost::bind(f1, 2)); tx.join(); _exit(-5); […]

Seul le traitement des threads io_service est en attente même si des opérations d’E / S asynchrones sont en attente

Le répartiteur ASIO de Boost semble avoir un grave problème et je n’arrive pas à trouver une solution. Le symptôme est que le seul thread en attente d’expédition rest dans pthread_cond_wait bien qu’il y ait des opérations d’E / S en attente qui nécessitent son blocage dans epoll_wait . Je peux plus facilement reproduire ce […]

Traitement parallèle en Linux

Je ne sais pas comment gérer les tâches asynchrones dans un programme que j’écris et j’espère que quelqu’un de plus expérimenté pourra au moins me diriger dans la bonne direction. J’exécute Angstrom Linux sur un processeur ARM intégré. Mon programme contrôle plusieurs servos via le matériel PWM exposé et une caméra sur PTP. De plus, […]

Est-il possible d’implémenter des primitives de concurrence Linux qui offrent une meilleure isolation que les threads, mais des performances comparables?

Considérons une application suivante: un serveur de recherche Web qui, au démarrage, crée un grand index en mémoire des pages Web en fonction des données lues sur le disque. Une fois initialisé, l’index en mémoire ne peut plus être modifié et plusieurs threads sont lancés pour répondre aux requêtes des utilisateurs. Supposons que le serveur […]

Core dump de l’application multithread montre qu’un seul thread

J’ai une application de test en c ++ démarrant plusieurs threads dans sa main() puis dormant dans main() pour toujours. L’un des threads fait quelque chose qui provoque un segfault et un coredump est généré (ulimit -c unlimited a été défini précédemment). J’ouvre le kernel avec gdb et je vois avec thread apply all bt […]

Threads et fork (). Comment puis-je gérer cela?

Duplication possible: fourche dans un programme multithread Si j’ai une application qui utilise fork () et qui pourrait être développée en multithread, quelles sont les règles / directives du pouce à prendre en compte pour programmer ce type d’applications en toute sécurité?

Fils, signaux et manipulation des enfants: quel monde … Quel monde

J’ai donc un problème de conception intéressant. Je travaille sur Linux SLES 9+, le kernel 2.6+ et j’ai une application multithread agissant en tant que client RPC. L’idée est de disposer de peu de threads pour traiter les requêtes; une de ces demandes consiste à lancer un “job” en tant que processus enfant. Maintenant, le […]