linux多线程编程实例
Linux多线程编程实例:
1、使用pthread库实现多线程:
#include <stdio.h> #include <pthread.h>
// 各线程运行函数 void *thread_func1(void* arg) { printf("Thread 1 running\n"); return NULL; }
void *thread_func2(void* arg) { printf("Thread 2 running\n"); return NULL; }
int main(int argc, char **argv) { pthread_t tid1,tid2;
//创建新的线程 pthread_create(&tid1,NULL,thread_func1,NULL); pthread_create(&tid2,NULL,thread_func2,NULL);
linux在线编程 // 等待线程结束 pthread_join(tid1,NULL); pthread_join(tid2,NULL); return 0; }
2、使用POSIX信号量实现多线程:
#include <stdio.h> #include <semaphore.h>
// 各线程运行函数 void *thread_func1(void* arg) { sem_wait((sem_t *)arg); printf("Thread 1 running\n"); sem_post((sem_t *)arg); return NULL; }
void *thread_func2(void* arg) { sem_wait((sem_t *)arg); printf("Thread 2 running\n"); sem_post((sem_t *)arg); return NULL; }
int main(int argc, char **argv) { sem_t sem; pthread_t tid1,tid2;
// 初始化信号量 sem_init(&sem,0,1); //创建新的线程 pthread_create(&tid1,NULL,thread_func1,&sem); pthread_create(&tid2,NULL,thread_func2,&sem);
// 等待线程结束 pthread_join(tid1,NULL); pthread_join(tid2,NULL);
// 销毁信号量 sem_destroy(&sem); return 0; }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论