C++多线程编程的基本概念

一、线程

1、每个进程都至少包含一个线程(主线程)

2、操作系统分配给CPU时间的最小实体是线程,即线程是最小执行单元

3、线程从属于进程,多线程共享同一进程的内存空间,进程结束时,线程也被强制退出并清除

4、每个线程可以拥有自己的堆栈资源

二、线程的状态

查看源图像

1、新建:新创建了一个线程对象

2、就绪态:线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,线程能够运行的条件已经满足,在等待CPU处理器

3、运行态:线程正在CPU中运行

4、阻塞态:阻塞状态是线程因为某种原因(如I/O操作、互斥锁的释放、条件变量的改变等)放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行态

5、终止态:线程函数运行结束或者被其他线程取消后所处的状态,其占用的操作系统资源没有被释放,可以被重新复活。

三、线程函数

线程创建后要执行的函数,这个函数是我们自定义的,在创建线程时把函数作为参数传入线程创建函数,同时也可以传入线程函数所需要的参数。

比如POSIX线程库:void* ThreadProc(void* arg);  arg是指向要传给线程的数据。

四、线程标识

线程创建时,系统会分配一个唯一的ID号作为线程标识,它的生命历程是从线程创建时开始,一直到线程结束,操作系统自动回收该标识。

五、C++多线程的开发方式

1、使用POSIX多线程库的API函数进行开发

2、使用C++11后增加的线程类进行开发(现在推荐使用这种,毕竟C++提供了更多的抽象概念)

猜你喜欢

转载自blog.csdn.net/xunye_dream/article/details/110312908