Abschluss: Multithreading #include <stdio.h> #include <string.h> #include <stdlib.h> #include <pthread.h> #include <assert.h> void *fun1(void *arg) { printf("fun1 eingeben\n"); während(1) { printf("%s\n", __FUNKTION__); wirschlafen(1000 * 1000); } printf("fun1 beenden\n"); Rückgabewert ((void *)1); } void *fun2(void *arg) { printf("fun1 eingeben\n"); wir schlafen(1000 * 3000); char * ptr = (char *)malloc(Größe von(char)); printf("ptr1: 0x%x\n", ptr); ptr = NULL; printf("ptr2: 0x%x\n", ptr); frei(ptr); memcpy(ptr, "123", 3); printf("ptr3: 0x%x\n", ptr); printf("fun2 beenden\n"); Rückgabewert ((void *)2); } int Haupt(void) { pthread_t tid1, tid2; int err; err = pthread_create(&tid1, NULL, fun1, NULL); behaupten(0 == err); err = pthread_create(&tid2, NULL, fun2, NULL); behaupten(0 == err); printf("Hauptverknüpfung ...\n"); // getchar(); pthread_join(tid1, NULL); pthread_join(tid2, NULL); gebe 0 zurück; } Multi-Prozess #include <stdio.h> #include <string.h> #include <stdlib.h> #include <pthread.h> #include <assert.h> void-Spaß(void *arg) { printf("fun1 eingeben\n"); wir schlafen(1000 * 3000); char * ptr = (char *)malloc(Größe von(char)); printf("ptr1: 0x%x\n", ptr); ptr = NULL; printf("ptr2: 0x%x\n", ptr); frei(ptr); memcpy(ptr, "123", 3); printf("ptr3: 0x%x\n", ptr); printf("fun2 beenden\n"); zurückkehren ; } int main(int argc, char *argv[]) { behaupten(2 == argc); pid_t pid; int ich; für(i=0; i<atoi(argv[1]); i++) { pid = gabel(); wenn(0 > pid) { printf("Fork-Fehler"); Ausgang (1); } sonst wenn (0 == pid) { printf("Kind-PID ist %lu\n", (unsigned long)getpid()); Spaß(NULL); Ausfahrt (0); } } printf("übergeordnete PID ist %lu\n", (unsigned long)getpid()); while(-1 != wait(NULL)); //Warten, bis alle Unterprozesse beendet sind printf("main return\n"); getchar(); gebe 0 zurück; } Dies ist das Ende dieses Artikels über die Linux-Simulation von Multithread- und Multiprozess-Abstürzen. Weitere relevante Linux-Simulationen von Multithread- und Multiprozess-Abstürzen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Der Unterschied zwischen distinct und group by in MySQL
>>: Detaillierte Erklärung der Unterschiede zwischen var, let und const in JavaScript es6
Umfeld: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-gli...
Einige Projekte haben ein relativ einfaches Gesch...
Übergeordnete Datei importiere React, { useState ...
1. Die Bedeutung von Indizes Indizes werden verwe...
<br />Verwandte Artikel: 9 praktische Vorsch...
eins. Übersicht über die IE8-Kompatibilitätsansic...
Inhaltsverzeichnis 1. JDK installieren Manuelle I...
Wichtige Daten müssen gesichert werden, und zwar ...
In diesem Artikel werden 20 hervorragende Beispiel...
1. Unterabfrage MySQL 4.1 und höher unterstützen ...
Inhaltsverzeichnis 1. Laden Sie die MySQL-MSI-Ver...
Vorwort Der Quellcode umfasst insgesamt nur mehr ...
In diesem Artikelbeispiel wird der spezifische Co...
Dieser Artikel stellt einige Aspekte von HTML-Tag...
Beim Webdesign ist es sehr wichtig, eine organisi...