# Linux 相关知识
## 常用命令
> TODO
## 相关概念
### 线程、进程
##### 进程
是表示资源分配的基本单位。
#### 线程
线程则是进程中执行运算的最小单位,即执行处理机调度的基本单位
#### Java开发中的线程并发
线程安全:当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。理解为程序按照你的代码逻辑执行,并始终输出预定的结果。
## 进程状态
### 相关概念
进程状态:一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程。进程状态即体现一个进程的生命状态。
### 状态模型
- 三态模型:
- 运行态:进程占有处理器正在运行。
- 就绪态:进程具有运行条件,等待系统分配处理器运行。
- 阻塞态:进程不具备运行条件,正在等待某个事件的完成。
- 五态模型:新建态、终止态,运行态,就绪态,阻塞态。
## 进程间的通信(IPC,Inter-process Communcation)
### 相关概念
#### IPC两个操作
- 发送(send message)
- 接受(receive message)
#### 进程通信流程
- 在进程间建立通信链路
- 通过 send/receive 发送接收消息
#### 进程通信方式
- 直接通信:(共享信道)
- 进程必须正确命名对方,比如send(p,message)向p发送信息,receive(q,message)从q中接收信息
- 通信链路有如下属性:自动建立连接;一条链路恰好对应一对通信进程;
- 每对进程之间只有一个链接存在;
- 链路可以是单向的,但是通常为双向的
- 间接通信:(通过OS内核)
- 通过OS维护的消息队列实现进程之间的通信(接收发送信息)
- 每个消息队列都有一个唯一标识,只有共享了相同消息队列的进程才能够通信
- 通信链路有如下属性:只有共享了相同消息队列的进程才能建立连接,比如send(a,message)向消息队列a发送信息,receive(a,message)从消息队列a中接收信息;
- 连接单向或者双向;
- 消息队列可以与多个进程相互关联;
- 每个进程共享多个消息队列(也就是进程和消息队列是多对多的关系)
### 进程间通信的5种方式
> TODO
## 线程并发
> TODO
- 1. HTML
- 1.1 HTML 标签
- 1.2 HTML 属性
- 1.3 HTML5
- 2. CSS/CSS3
- 2.1 CSS3
- 2.2 Less
- 2.3 Sass
- 3. JavaScript
- 3.1 JQuery
- 3.2 javascript code
- 3.3 es6
- 4. 前端框架
- 4.1 Angular4+
- 4.2 React
- 4.3 Vue
- 5. 综合知识
- 5.1 HTTP
- 5.2 websocket
- 5.3 综合问题集合
- 5.4 前端优化
- 6. 附加知识
- 6.1 TCP/IP
- 6.2 数据结构
- 6.3 前端开发
- 7. 相关工具
- 7.1 Git
- 7.2 调试
- 7.3 Linux
- 8. 其他需要了解的内容
- 8.1 Python3
- 8.2 Java
- 8.3 数据库