admin 管理员组

文章数量: 1087139


2024年3月13日发(作者:个人简历模板下载word格式免费下载)

linux多线程编程实例

Linux多线程编程实例:

1、使用pthread库实现多线程:

#include #include

// 各线程运行函数 void *thread_func1(void* arg)

{ printf("Thread 1 runningn"); return

NULL; }

void *thread_func2(void* arg)

{ printf("Thread 2 runningn"); 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);

// 等待线程结束 pthread_join(tid1,NULL);

pthread_join(tid2,NULL); return 0; }

2、使用POSIX信号量实现多线程:

#include #include

// 各线程运行函数 void *thread_func1(void* arg)

{ sem_wait((sem_t *)arg); printf("Thread 1

runningn"); sem_post((sem_t *)arg); return

NULL; }

void *thread_func2(void* arg)

{ sem_wait((sem_t *)arg); printf("Thread 2

runningn"); 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; }


本文标签: 线程 下载 信号量 实现