C++多线程开发

一、什么是线程

1、线程就是程序的执行路线,是轻量级的;

2、线程不占用独立的内存资源,共享进程资源,但不包括栈区,故线程可以有自己的局部变量;

3、一个进程可以同时有多个线程,可多线程同时运行。

二、线程特点

1、线程不拥有自己的资源,只会拥有属于进程的全部资源,所有的资源分配都是面向进程的;

2、线程有不同的状态,系统提供了多种线程控制原语,如创建线程,销毁线程等等;

3、一个进程中可以有多个线程并发的进行,可以执行相同的程序,也可以执行不同的程序;

4、线程相较于进程来说,线程开销小,任务切换快;

5、每个线程拥有自己独立的寄存器信息、线程ID、函数栈、错误码等信息。

三、规则相关

1、早前线程相关接口,各个厂商都有自己的一套标准,不利于移植;

2、IEEE POSIX 定义了统一的线程接口,即pthread;

3、此定义没有在标准C当中,而是使用一个头文件pthread.h和libpthread.so,在使用gcc链接时需要链接libpthread.so库。

四、相关接口

1、线程创建接口

    int pthread_create(pthread_t* restrict thread,
                                   const pthread_attr_t* restrict attr,
                                   void* (*start_routine) (void*),

                                   void* restrict arg);

    参数解释:

    thread —— 线程ID,创建线程后会输出此线程ID,通过thread带回,pthread_t 即为unsigned long int类型。

    attr      —— 线程属性,NULL表示缺省属性, pthread_attr_t可能是整型也可能是结构。

   start_routine ——  线程执行函数,当线程被调度则执行本函数,函数返回则线程结束。

   arg—— 传递给线程执行函数的参数,线程函数的调用者是系统内核,而非用户代码, 因此需要在创建线程时指定参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值