没有合适的资源?快使用搜索试试~ 我知道了~
结论是: 多线程下如果其中一个线程崩溃了会导致其他线程(整个进程)都崩溃; 多进程下如果其中一个进程崩溃了对其余进程没有影响; 多线程 #include <stdio> #include <string> #include <stdlib> #include <pthread> #include <assert> void *fun1(void *arg) { printf(fun1 enter\n); while(1) { printf(%s\n, __FUNCTION__); usleep(1000 * 1000); } printf(fu
资源详情
资源评论
资源推荐
浅谈浅谈linux模拟多线程崩溃和多进程崩溃模拟多线程崩溃和多进程崩溃
结论是:
多线程下如果其中一个线程崩溃了会导致其他线程(整个进程)都崩溃;
多进程下如果其中一个进程崩溃了对其余进程没有影响;
多线程
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <assert.h>
void *fun1(void *arg)
{
printf("fun1 enter");
while(1)
{
printf("%s", __FUNCTION__);
usleep(1000 * 1000);
}
printf("fun1 exit");
return ((void *)1);
}
void *fun2(void *arg)
{
printf("fun1 enter");
usleep(1000 * 3000);
char * ptr = (char *)malloc(sizeof(char));
printf("ptr1: 0x%x", ptr);
ptr = NULL;
printf("ptr2: 0x%x", ptr);
free(ptr);
memcpy(ptr, "123", 3);
printf("ptr3: 0x%x", ptr);
printf("fun2 exit");
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 ...");
// getchar();
pthread_join(tid1, NULL);
pthread_join(tid2, NULL);
return 0;
}
多进程
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <assert.h>
void fun(void *arg)
{
weixin_38563552
- 粉丝: 2
- 资源: 878
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0