Windows进程销毁
来源:互联网 发布:php 百度地图api demo 编辑:程序博客网 时间:2024/06/05 17:35
Windows进程销毁有基本的四种模式,入口函数返回,ExitProcess(),TermitateProcess(),所有线程死亡
这四种操作 只有入口函数返回是靠谱的正规操作,ExitProcess(),TermitateProcess()是危险操作,尽量避免,所有线程死亡的操作只存在于理论上。。。。。
接下来逐个简述这四种操作。
入口函数返回->程序执行完后自动退出,程序退出的时候会做以下的事:
1.将栈上面的数据全部清除。
2.将堆上面的数据全部清除。
3.设置退出代码。(将退出代码设置为入口函数的返回值)
4.内核对象的计数减一。
ExitProcess(UINT uExitCode):
这个函数可以中断进程操作,立即切断线程,让进程退出(进程中没有线程的时候就没有存在的意义,就退出了)。进程推出的时候这个函数会将他的接受到的参数设置为退出代码。但是,不会将内核对象的数量递减。关于内核对象不消亡所产生的影响后面来说。
ExitProcess(HANDLE hProcess,DWORD uExitCode)
这个函数的作用和楼上的函数差不多,但是它多了个HANDLE参数,这个HANDLE参数可以接收一个句柄,可以销毁特定的进程。
线程全部自然死亡:
这个是理论上的,这里就不说了。。。。。。
接下来说下非常重要的一个东西->内核对象计数。。。。。。。
楼上为什么都不推荐使用这些函数在中途退出进程了,就是因为这些函数都不会将内核对象的数量递减。程序结束,进程内核对象不归零就会在操作系统中残留内核对象,而操作系统中的内核对象都是共享的,你的程序用完,系统回收,在给别的程序用。如果无法将内核对象回收,操作系统的内核对象就越来越少。然后就。。。卡出翔~!!!!!!!!!!
所以,在使用进程的时候还有一个特别注意的地方,那就是当我们CreateProcess的时候,内核计数会+1,当我们初始化
- Windows进程销毁
- Windows进程的创建与销毁
- 进程的销毁
- 进程创建与销毁
- 进程销毁顺序
- [李景山php] 销毁进程
- 进程的销毁
- 创建进程,销毁僵尸进程
- windows消息销毁窗口
- windows窗口销毁
- 创建和销毁子进程
- 创建和销毁子进程
- 根据Excel进程ID销毁Excel进程
- MFC窗口销毁了,进程还在
- android服务、进程不被销毁
- shell 下查看及销毁进程
- Android 应用退出后销毁apk进程
- 关于Android销毁进程的方法。
- Spring学习——SpringMVC和Struts2的区别
- JAVA小项目--银行管理系统
- pycharm 导入自定义模块提示 no module name
- 类型错误的两种容错处理
- UIImagePickerController iOS11调起相册 中的照片被导航栏遮挡
- Windows进程销毁
- Gamma & Linear Color Space
- 《算法4》最短路径之Dijkstra与Bellman-Ford算法
- 对于我这种不懂代码不懂软件的老百姓,想下载个资源真难啊
- html常见兼容性问题
- 171203-字符串的复习,结构和位运算复习【连续第三十九天】
- gradle 用户手册 第2章 概览
- CPU和GPU擅长和不擅长的地方
- 如何用jsp界面与servlet带验证码的登录