list_lock以及内存分配区锁导致进程虚拟内存耗尽的问题分析
由于在atfork时,父线程(进程)会对所有的分配区加锁,并对全局锁list_lock加锁,在有线程在创建子线程的情况下,当前线程是不能获得分配区的,所以在没有重试的情况下,先尝试获得全局锁list_lock,如果不能获得全局锁list_lock,阻塞在全局锁list_lock上,直到获得全局锁list_lock,也就是说当前已没有线程在创建子线程,然后再重新遍历全局分配区链表,尝试对分配区加锁,...
原创
2018-05-04 16:28:32 ·
604 阅读 ·
1 评论