首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

操作系统篇-进程管理和中断

以下针对java来说明 1. 进程 线程 纤程 ? 进程和线程区别 进程就是一个程序运行起来的状态,线程是一个进程中的不同的执行路径。 进程是OS分配资源的基本单位,线程是执行调度的基本单位。...即:用户空间的线程 为什么需要纤程: java启动线程,在操作系统级别,就是启一个LWP。这是重量级线程。因为java启动线程需要向操作系统申请资源,和操作系统内核打交道,需要系统调用。...进程描述符…),全局变量, 数据段… Linux进程描述符:PCB (Process Control Block),用于Linux的进程管理(线程有他的PCB) 僵尸进程 ps -ef |grep defunct...(defunct表示无用的僵尸进程) 父进程产生子进程后,会维护子进程的PCB结构,子进程退出后,由父进程释放,如果父进程没有释放,那么子进程会成为一个僵尸进程(defunct) 孤儿进程 子进程结束之前...注:eax 是32位的,ax是16位的 java中例子 java读网络 – jvm read() – c库read() - > 内核空间 -> system_call() (系统调用处理程序)-> sys_read

1.2K00

golang 服务平滑重启小结

背景 golang 程序平滑重启框架 supervisor 场景的 defunct 问题 使用 master/worker 模式 背景 在业务快速增长中,前期只是验证模式是否可行,期间会忽略程序发布过程中因短暂停服引发的服务不可用...golang 程序平滑重启框架 与 java、net 等基于虚拟机的语言不同,golang 天然支持系统级别的调用,平滑重启处理起来很容易。...\n", sig) } srv.signalHooks(POST_SIGNAL, sig) } } supervisor 场景的defunct问题 使用 supervisor...这样, defunct(僵尸进程) 问题就出现了。这个子进程无法完成退出的原因是没有接受子进程退出信号的主进程。同时,退出进程本身在defunct进程中的少量数据结构也无法销毁【内存泄露】。

1.5K20
领券