一般使用下列方法之一种将 SHMMAX 参数设为 2GB :通过直接更改 /proc 文件系统,你不需重新启动机器就可以改变 SHMMAX 的默认设置。第三个参数,buf,是一个指向包含共享内存模式与权限的结构的指针,删除的时候可以默认为0。
当 flags 参数中加入 MAP_ANON 或者 MAP_ANONYMOUS 参数时表示不使用文件映射方式,这时 fd 和 offset 参数就没有意义了,也不需要传递,此时的 mmap 方法和 ngx_shm_alloc 的功能几乎完全相同。
Java栈 Java Stack:Java栈总是与线程关联在一起的,每当创建一个线程,JVM就会为该线程创建对应的Java栈,在这个Java栈中又会包含多个栈帧,这些栈帧是与每个方法关联起来的,每运行一个方法就创建一个栈帧,每个栈帧会含有一些局部变量、操作栈和方法返回值等信息。
由于原生的 errgroup 有上面两个问题,因此很多公司内部,或者社区,都在原生的基础上做了一些扩展封装,用来解决原生 errgroup 的问题,比如 kratos 的 errgroup,在原生的 errgroup 之上,做了进一步的扩展,改进了没有 recover 问题和并发数量问题,err 中包含了panic 发生时的详细堆栈信息,使得 errgroup 机制更加健壮。