🌈 style:

This commit is contained in:
lzy
2024-06-23 17:45:58 +08:00
parent 5598552b22
commit a5172579e3
16 changed files with 138 additions and 393 deletions

View File

@@ -299,3 +299,74 @@ struct timeval {
此外都和标准信号一样
## 线程(强烈异步)
### 线程的概念
会话-->进程-->线程
一个正在运行的函数。
`main`函数可以叫做main线程不应该说主线程线程之间平等。
`posix`线程是一套标准,而不是实现。
`openmp`线程。
例如,线程标识: `pthread_t`, 具体类型怎么实现是不知道的
在linux环境可以通过`ps axm`或者`ps -ax -L`查看线程信息。
发现线程消耗了进程号。
```c
#include <pthread.h>
//* Compile and link with -pthread
/**
* 比较两个pthread_t是否相等
* @param: t1: pthread_t
* @param: t2: pthread_t
*
* @return: 相等返回非0不相等返回0
*/
int pthread_equal(pthread_t t1, pthread_t t2);
/**
* 获取当前线程的pthread_t
* @return: 当前线程的pthread_t
*/
pthread_t pthread_self(void);
```
### 线程的操作
创建,终止,取消,栈的清理
线程的调度取决于调度器策略。
```c
#include <pthread.h>
// Compile and link with -pthread
/**
* 创建线程
* @param: thread: 线程ID指针
* @param: attr: 线程属性指针
* NULL: 默认属性
* @param: start_routine: 线程函数指针
* void *(*)(void *)
* @param: arg: 线程函数参数
*
* @return: 成功返回0失败返回errCode
* 建议使用strerror而非perror
*/
int pthread_create(pthread_t * thread,
const pthread_attr_t *attr,
void *(*start_routine)(void *),
void *arg);
```
### 线程的同步
### 线程属性,线程同步的属性
### 重入,线程与信号,线程与`fork`