Skip to content

Commit fbc577b

Browse files
committed
parallel
1 parent 3edee33 commit fbc577b

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

docs/parallel/multi-processing.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,8 @@
55
???+note "多线程和多进程"
66
多进程可以理解为互不共享资源的线程,反过来讲,线程也可以理解为共享资源的进程,它们的界限有时候并不是那么清楚。在不同操作系统上,有的会分开区别,创建线程和进程的开销也有区别。例如,Linux 中,`clone` 系统调用既可以用来创建进程,也可以用来创建线程,无论是 `fork` 还是 `pthread_create`,最终都会使用 `clone` 来创建进程/线程。线程在 Linux 中也叫做轻量进程(Light-weight Process, LWP)。
77

8-
经典的使用多进程的程序有 nginx、PostgreSQL 等,其中 nginx 使用多进程的主要目的是负载均衡,不同的客户端连接将会分配到不同工作进程进行处理,一个工作进程会处理多个连接,而 PostgreSQL 则是为每一个客户端连接都开启新的进程,一个进程只处理一个连接。
8+
经典的使用多进程的程序有 nginx、PostgreSQL 等,其中 nginx 使用多进程的主要目的是负载均衡,不同的客户端连接将会分配到不同工作进程进行处理,一个工作进程会处理多个连接,而 PostgreSQL 则是为每一个客户端连接都开启新的进程,一个进程只处理一个连接。
9+
10+
## 共享内存
11+
12+
## IPC
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# 进程池
2+
3+
进程池和线程池类似,只是工作线程变成了工作进程。

docs/parallel/practice/thread-pool.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# 线程池
2+
3+
在实际编程中,如果频繁启动和销毁线程,带来的开销也不可忽视。一般来说,我们会使用线程池的方法来高效地利用硬件的并发度。线程池的思想很简单:预先启动好线程,然后不停地从任务队列里获取任务执行,程序结束时再一起销毁。这样,我们就不需要操心线程的启动销毁问题,只需要不停地向线程池提交任务即可。

0 commit comments

Comments
 (0)