Linux下的C/C++多进程多线程编程实例详解
本文将为读者讲解Linux下的C/C++多进程多线程编程实例,并提供两个示例说明。Linux下的多进程多线程编程是一个方便且高效的编程方式,可以有效地提高程序的并发性和性能,是实现高并发、高性能的重要编程方式。
多进程编程实例
多进程编程是一种并发编程的模式,可以有效地提高程序的并发性。在Linux下,多进程编程可以通过fork()
系统调用实现,下面提供一个示例说明。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
pid = fork();
if (pid < 0) {
fprintf(stderr, "Fork Failed");
exit(-1);
}
else if (pid == 0) {
/* child process */
printf("I am the child process: pid = %d\n", getpid());
exit(0);
}
else {
/* parent process */
printf("I am the parent process: pid = %d, child pid = %d\n", getpid(), pid);
}
return 0;
}
上述程序中,使用fork()
系统调用创建了一个子进程,子进程通过getpid()
函数获取自己的进程ID并输出。父进程也通过getpid()
函数获取自己的进程ID和子进程的进程ID并输出。
多线程编程实例
多线程编程是一种并发编程的模式,可以有效地提高程序的并发性。在Linux下,多线程编程可以通过pthread
库实现,下面提供一个示例说明。
#include <iostream>
#include <cstdlib>
#include <pthread.h>
using namespace std;
#define NUM_THREADS 5
void *PrintHello(void *threadid)
{
long tid;
tid = (long)threadid;
cout << "Hello World! Thread ID, " << tid << endl;
pthread_exit(NULL);
}
int main ()
{
pthread_t threads[NUM_THREADS];
int rc;
long t;
for(t=0; t<NUM_THREADS; t++){
cout << "Creating thread, " << t << endl;
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
if (rc){
cout << "Error:unable to create thread," << rc << endl;
exit(-1);
}
}
pthread_exit(NULL);
}
上述程序中,NUM_THREADS
定义了线程数,通过循环创建多个线程。线程函数PrintHello()
输出线程ID,并通过pthread_exit()
函数退出线程。
总结
本文介绍了Linux下的C/C++多进程多线程编程实例,并提供了两个示例说明,分别使用了fork()
系统调用和pthread
库。使用多进程和多线程编程可以有效提高程序的并发性和性能,在实现高并发、高性能的系统时应该加以应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下的C\C++多进程多线程编程实例详解 - Python技术站