C 多线程 知识点记录

  今天接触了C语言中的多线程,在这里记录一下

第一步:

  引入头文件pthread.h

#include <pthread.h>

第二步:

  运用函数:

    pthread_t:创建线程句柄

    pthread_create():创建线程 参数:第一个参数线程句柄、 第二个参数NULL就行 、第三个参数是函数名类型(void*) 、第四个参数是函数的参数。

    pthread_eixt():结束线程:参数是0

    pthread_join():阻塞式挂起进程:参数是线程句柄

    pthread_mutex_t :互斥锁 :创建互斥锁句柄

 

    pthread_mutex_init():开启互斥锁:第一个参数是互斥锁句柄、第二个参数是NULL。

    pthread_mutex_destroy():关闭互斥锁:参数是互斥锁句柄

    注:我用的是vs,需要在 项目->属性->链接器->输入->库依赖项:pthread  如果是在linux环境下需要在运行的命令后加 -ldl -pthread

  例如:

  

#include<stdio.h>
#include <stdlib.h>
#include<pthread.h>

pthread_mutex_t mute;

void* func_scan(void* num)
{
    while (1) {
        printf("%d\n", num);
        fflush(stdout);
    }

    printf("func_scan out\n");
    pthread_exit(0);
};

int main() 
{
    int num = 0;
    pthread_t  scan_thread;
    pthread_mutex_init(&mute, NULL);

    pthread_create(&scan_thread, NULL,func_scan, (void*)num);
    while (1) {
        printf("222");
    };
    pthread_join(scan_thread, NULL);

    pthread_mutex_destroy(&mute);
    printf("%s\n", "hello word!!");
    fflush(stdout);
    return 0;
};

  解释:例子是开启一个线程运行函数func_scan。

posted @ 2020-10-16 16:35  IT小平  阅读(127)  评论(0)    收藏  举报