pthread(POSIX线程)是一套多线程编程的API,用于实现并发程序,以下是一个简单的pthread示例,展示了如何创建线程、等待线程结束以及获取线程返回值。
#include <stdio.h> #include <stdlib.h> #include <pthread.h> // 线程函数 void *print_hello(void *arg) { printf("Hello from thread %ld ", (long)arg); pthread_exit(NULL); } int main() { pthread_t threads[5]; // 存储线程ID的数组 int rc; long t; // 创建5个线程 for (t = 0; t < 5; t++) { printf("In main: creating thread %ld ", t); rc = pthread_create(&threads[t], NULL, print_hello, (void *)t); if (rc) { printf("ERROR; return code from pthread_create() is %d ", rc); exit(1); } } // 等待所有线程结束 for (t = 0; t < 5; t++) { pthread_join(threads[t], NULL); } /* 退出主线程 */ pthread_exit(NULL); }
在这个示例中,我们首先包含了必要的头文件<stdio.h>
、<stdlib.h>
和<pthread.h>
,然后定义了一个线程函数print_hello
,它接受一个void
类型的参数,并打印一条消息,在main
函数中,我们创建了一个包含5个线程ID的数组threads
,然后使用pthread_create
函数创建了5个线程,每个线程都执行print_hello
函数,并将线程编号作为参数传递,我们使用pthread_join
函数等待所有线程结束。
注意:这个示例仅展示了pthread的基本用法,实际应用中可能需要处理更复杂的线程同步和互斥问题。
小伙伴们,上文介绍了“pthread源码”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1163982.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复