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小时内删除。