POSIX线程:主要适用于跨平台,针对win使用,因为本身安卓这样的类Unix已经包含了Posix的线程标准。
一般的VS开发多线程需要引入POSIX,使得写出来的多线程代码满足移植标准。
使用cmake引入依赖:
include_directories("D:/......Pthread-w32-2-9-1-release/Pre-build.2/include");
引入动态库和静态库
link_directories("D:/......Pthread-w32-2-9-1-release/Pre-build.2/lib/x86");
引入具体的库
target_link_directories(项目名称,pthreadVC2);
int main() {
cout << "Hello, World!" << endl;
cout << pthread_self() << endl;
// 配置线程属性的结构体
pthread_attr_t attr;
//1、设置分离线程(默认非分离)
pthread_attr_init(&attr);
// 分离线程: 不能被其他线程操作执行join,独立运行
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
// 线程的调度策略与优先级
pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
int max = sched_get_priority_max(SCHED_FIFO);
int min= sched_get_priority_min(SCHED_FIFO);
sched_param *param;
param->sched_priority = min;
pthread_attr_setschedparam(&attr, param);
pthread_t pid;
int i =100;
pthread_create(&pid,0, printF, &i);
pthread_join(pid, 0);
// 主线程的操作是在join函数执行完成之后 再继续执行
pthread_attr_destroy(&attr);
cout<<"主线程执行完成"<<endl;
return 0;
}