Go
基础
struct
text
1.结构体能不能比较?
slice
text
1.底层结构,共享数组
2.cap,len含义
3.扩容原理
4.深浅拷贝
5.和数组的区别
map
text
1.底层结构
2.扩容
3.并发读写
set
text
1.如何实现一个set
channel
text
1.底层结构
sync
text
mutex
sync.Pool
Condition
atomic
waitGroup
sync.Map
unsafe
text
原理部分
内存分配
text
垃圾回收
text
GMP
text
孤儿进程 僵尸进程
text
僵尸进程:
即子进程先于父进程退出后,子进程的PCB需要其父进程释放,但是父进程并没有释放子进程的PCB,这样的子进程就称为僵尸进程,僵尸进程实际上是一个已经死掉的进程。
孤儿进程:
一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
子进程死亡需要父进程来处理,那么意味着正常的进程应该是子进程先于父进程死亡。当父进程先于子进程死亡时,子进程死亡时没父进程处理,这个死亡的子进程就是孤儿进程。
但孤儿进程与僵尸进程不同的是,由于父进程已经死亡,系统会帮助父进程回收处理孤儿进程。所以孤儿进程实际上是不占用资源的,因为它终究是被系统回收了。不会像僵尸进程那样占用ID,损害运行系统。