学习这篇文章中有关线程的相关知识。
链接: https://www.cnblogs.com/xiehongfeng100/p/4620852.html.
进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程包含了表示进程内执行环境必须的信息,其中包括进程中表示线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno常量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。在Unix和类Unix操作系统中线程也被称为轻量级进程(lightweight processes),但轻量级进程更多指的是内核线程(kernel thread),而把用户线程(user thread)称为线程。
进程——资源分配的最小单位,线程——程序执行的最小单位。
好,我们来创建一个简单的线程来看看
已经知道线程是进程的执行单元,那它要执行什么呢,肯定需要我们事先给它写好函数,创建了它,它就会执行这个函数。
来看看这段代码:
我们创建一个线程t1,让它去执行func1函数,func1函数打印出自己的pthread 号,主进程通过pthread_join等待线程执行结束才结束。
来看看运行结果:
(师上官可编程)