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。
用心写每一篇博客

浙公网安备 33010602011771号