Je sais que la sécurité des threads des sockets Java a été discutée dans plusieurs threads ici sur stackoverflow, mais je n’ai pas été en mesure de trouver une réponse claire à cette question – Est-il pratique d’avoir plusieurs threads en même temps SocketOutputStream, ou existe-t-il un risque que les données envoyées par un thread […]
Une application multithread se bloque et ne répond à aucune commande. J’ai essayé de suivre les choses sans chance: Joindre un processus à gdb (erreur: (gdb) attach 6026 Attachement à traiter 6026 ptrace: opération non autorisée.) gstack (gstack se bloque comme ça) Y a-t-il un bon moyen de déboguer ce processus?
Je fais du débogage pour un programme C ++ multithread (pthread) sur Linux. Cela fonctionne bien quand le numéro de fil est petit tel que 1, 2,3. Lorsque le numéro de fil est augmenté, j’ai reçu SIGSEGV (défaut de segmentation, signal UNIX 11). Mais, l’erreur apparaît parfois et disparaît parfois lorsque j’augmente le nombre de […]
// threadA.c int main() { int res; pthread_t a_thread; void *thread_result; res = pthread_create(&a_thread, NULL, thread_function, NULL); if (res != 0) { perror(“Thread creation failed”); exit(EXIT_FAILURE); } sleep(3); printf(“Canceling thread…\n”); res = pthread_cancel(a_thread); if (res != 0) { perror(“Thread cancelation failed”); exit(EXIT_FAILURE); } printf(“Waiting for thread to finish…\n”); res = pthread_join(a_thread, &thread_result); if (res != […]
Est-il sécuritaire de le faire: int fd; void thread_main() { char buf[M]; ssize_t r = read(fd, buf, M); assert(r == M); … } int main() { fd = open(“/dev/urandom”, O_RDONLY); for (int i = 0; i < N; i++) start_thread(i); for (int i = 0; i < N; i++) join_thread(i); } C’est-à-dire: Après avoir open(2) […]
Ouais je sais … Certaines personnes sont parfois difficiles à convaincre de ce qui semble naturel pour nous, et j’ai besoin de votre aide dès maintenant SO community (ou j’irai bientôt dans la poste). Un de mes collègues est convaincu que le code du kernel Linux n’est pas rentrant lorsqu’il le lit quelque part la […]
Le kernel Linux a-t-il connaissance des pthreads dans l’espace d’adressage des utilisateurs (ce que je ne pense pas… mais je n’ai trouvé aucune information à ce sujet). Comment le pointeur d’instruction change-t-il lorsque le changement de thread a lieu?
J’utilise Linux 3.2.0, x86_64. Puis-je appeler accept () pour un socket de plusieurs threads simultanément?
Disons que nous avons un grand tableau et de nombreux threads opérant sur des index concrets dans ce tableau. Deux threads ne peuvent pas fonctionner sur un index en même temps, il faut attendre que l’autre se termine. Et la question boiteuse: comment implémenter le locking test-and-set sur chaque index du tableau sous Linux / […]
Je demande à propos de Linux avec glibc récent. Existe-t-il un moyen de détecter que ce processus consiste en 1 thread ou en plusieurs threads? Les threads peuvent être créés par pthread ou bare clone (), donc j’ai besoin de quelque chose d’assez universel. UPD: Je veux détecter les threads du processus en cours à […]