linux模拟多线程崩溃和多进程崩溃的代码解析
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章主要讲解了linux模拟多线程崩溃和多进程崩溃的代码解析,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。结论是:多线程下如果其中一个线程崩溃了会导致其他线程(整个进
千家信息网最后更新 2025年02月08日linux模拟多线程崩溃和多进程崩溃的代码解析
这篇文章主要讲解了linux模拟多线程崩溃和多进程崩溃的代码解析,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
结论是:
多线程下如果其中一个线程崩溃了会导致其他线程(整个进程)都崩溃;
多进程下如果其中一个进程崩溃了对其余进程没有影响;
多线程
#include#include #include #include #include void *fun1(void *arg){ printf("fun1 enter\n"); while(1) { printf("%s\n", __FUNCTION__); usleep(1000 * 1000); } printf("fun1 exit\n"); return ((void *)1);}void *fun2(void *arg){ printf("fun1 enter\n"); usleep(1000 * 3000); char * ptr = (char *)malloc(sizeof(char)); printf("ptr1: 0x%x\n", ptr); ptr = NULL; printf("ptr2: 0x%x\n", ptr); free(ptr); memcpy(ptr, "123", 3); printf("ptr3: 0x%x\n", ptr); printf("fun2 exit\n"); return ((void *)2);}int main(void){ pthread_t tid1, tid2; int err; err = pthread_create(&tid1, NULL, fun1, NULL); assert(0 == err); err = pthread_create(&tid2, NULL, fun2, NULL); assert(0 == err); printf("main join ...\n");// getchar(); pthread_join(tid1, NULL); pthread_join(tid2, NULL); return 0;}
多进程
#include#include #include #include #include void fun(void *arg){ printf("fun1 enter\n"); usleep(1000 * 3000); char * ptr = (char *)malloc(sizeof(char)); printf("ptr1: 0x%x\n", ptr); ptr = NULL; printf("ptr2: 0x%x\n", ptr); free(ptr); memcpy(ptr, "123", 3); printf("ptr3: 0x%x\n", ptr); printf("fun2 exit\n"); return ;}int main(int argc, char *argv[]){ assert(2 == argc); pid_t pid; int i; for(i=0; i pid) { printf("fork error"); exit(1); } else if(0 == pid) { printf("child pid is %lu\n", (unsigned long)getpid()); fun(NULL); exit(0); } } printf("parent pid is %lu\n", (unsigned long)getpid()); while(-1 != wait(NULL)); //等待所有子进程结束 printf("main return\n"); getchar(); return 0;}
看完上述内容,是不是对linux模拟多线程崩溃和多进程崩溃的代码解析有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。
进程
线程
内容
代码
学习
兴趣
对此
小伙
小伙伴
明了
更多
篇文章
结论
行业
资讯
资讯频道
频道
进一
帮助
影响
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
蓝鸟计划软件开发
游龙网络技术有限公司
上海银联软件开发服务优化
相贯线软件开发公司
门头沟区网络软件开发平台
我的世界国际版无人服务器
网络安全和信息化系统管理制度
合肥直播软件开发商
新乡万景网络技术有限公司
修改服务器系统时间为北京时间
怀旧服猎人怎么切换服务器
搜狗的服务器地址是什么
软件开发类怎么开发票
csgo服务器完美
动画渲染服务器
美国农业部 数据库
利用归档日志恢复数据库
学校网络需要服务器么
软件开发项目的延期原因
苹果最高龄软件开发员
英雄联盟西安的服务器
新能源网络技术价格表格
福建创新网络技术服务供应商家
平谷区数据网络技术开发概况
传统web应用服务器转型
北京网络技术学院怎模样
一幅四年级网络安全手抄报
数据库中nvl的作用
计算机网络技术需要用电脑吗
政务网络安全研究