多线程基础知识

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值