文章目录
(1)POSIX线程库
前面说过,在Linux中是用进程模拟线程的,所以就不会用形如fork()
这类的系统调用提供给我们用来专门控制线程。所以要实现多线程,就要使用到库函数,这里面比较底层的是POSIX线程库,所以它就是产生的就是用户级别的线程,其绝大多数函数名字都是以pthread_
开头,并且注意引入头文件<pthread.h>
,而且链接时注意加入-lpthread
选项
(2)pthread_create——创建线程
复习:创建进程做了哪些事
父进程调用系统调用fork之后,就多了一个子进程。于是创建与该进程相关的一批数据结构,如PCB,地址空间还有files struct等;开辟地址空间之后,将虚拟地址与物理地址通过页表进行映射;将我们的代码和数据加载进物理内存;将进程投递到运行队列中供CPU调度
创建线程做了哪些事
创建线程不用额外分配资源,所以首先创建该线程的PCB,接着与创建该线程的进程共享地址空间