文章目录
- 九、多线程
- 1. 线程概念
- 2. 线程的控制
 
- 未完待续
九、多线程
1. 线程概念
我们知道:进程 = 内核数据结构 + 进程代码和数据 。那什么是线程呢?线程是进程内部的一个执行分支。一个进程内部可以有多个执行流(内核数据结构),这些执行流都是线程。线程是CPU调度的基本单位。
 
2. 线程的控制

pthread_create函数可以创建一个线程。并且编译时需要软链接 pthread 这个库 。
 Makefile:
test_thread: testThread.cc
	g++ -o $@ $^ -std=c++11 -lpthread
.PHONY: clean
clean:
	rm -f test_thread
test_Thread:
#include <iostream>
#include <pthread.h>
#include <unistd.h>
using namespace std;
// 新线程
void* newpthreadrun(void* arg)
{
    while (true)
    {
        cout << "I am newpthreadrun thread" << endl;
        sleep(1);
    }
}
int main()
{
    pthread_t tid;
    pthread_create(&tid, nullptr, newpthreadrun, nullptr);
    // main 线程
    while (true)
    {
        cout << "I am main thread" << endl;
        sleep(1);
    }
    return 0;
}

 并且此时只有一个进程在执行:
 
 刚跟我们说了,线程是CPU调度的基本单位,但是CPU怎么区分一个进程里的线程呢?线程有自己的线程id(LWP),CPU调度其实是根据线程id来进行调度的。
 
![[高频 SQL 50 题(基础版)]第一千七百五十七题,可回收且低脂产品](https://i-blog.csdnimg.cn/direct/5194077ed56246abb3ea2b35f750e628.png)












![[安洵杯 2019]easy_serialize_php](https://img-blog.csdnimg.cn/img_convert/7c693cd9f6e5ff270c5fa1ccf31c9df7.png)





