最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談linux模擬多線程崩潰和多進程崩潰

 更新時間:2020年06月04日 14:11:04   作者:王冠  
這篇文章主要介紹了淺談linux模擬多線程崩潰和多進程崩潰,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

結(jié)論是:
多線程下如果其中一個線程崩潰了會導致其他線程(整個進程)都崩潰;
多進程下如果其中一個進程崩潰了對其余進程沒有影響;

多線程

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <assert.h>

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 <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <assert.h>

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<atoi(argv[1]); i++)
 {
  pid = fork();
  if(0 > 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));  //等待所有子進程結(jié)束
 printf("main return\n");
 getchar();
 
 return 0;
}

到此這篇關(guān)于淺談linux模擬多線程崩潰和多進程崩潰 的文章就介紹到這了,更多相關(guān)linux模擬多線程崩潰和多進程崩潰 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vim的分屏功能命令大全

    Vim的分屏功能命令大全

    寫code的朋友可能都會有個煩惱,長長的代碼,小小的屏幕,是我怎能瞻前顧后?而vim的分屏功能在一定程度上解決了這個問題。這篇文章主要給大家介紹了Vim的分屏功能實現(xiàn),文中通過圖文以及詳細步驟給大家進行了介紹,相信會對大家的理解和學習很有幫助,
    2016-11-11
  • Apache?APISIX?Dashboard?未授權(quán)訪問漏洞分析(CVE-2021-45232)

    Apache?APISIX?Dashboard?未授權(quán)訪問漏洞分析(CVE-2021-45232)

    Apache?APISIX?是一個動態(tài)、實時、高性能的?API?網(wǎng)關(guān),?提供負載均衡、動態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認證、可觀測性等豐富的流量管理功能,這篇文章主要介紹了Apache?APISIX?Dashboard?未授權(quán)訪問漏洞(CVE-2021-45232),需要的朋友可以參考下
    2023-03-03
  • Apache之AllowOverride參數(shù)使用說明

    Apache之AllowOverride參數(shù)使用說明

    通常利用Apache的rewrite模塊對 URL 進行重寫的時候, rewrite規(guī)則會寫在 .htaccess 文件里。但要使 apache 能夠正常的讀取.htaccess 文件的內(nèi)容,就必須對.htaccess 所在目錄進行配置。
    2011-01-01
  • linux使用tcpdump命令監(jiān)視指定網(wǎng)絡(luò)數(shù)據(jù)包的方法

    linux使用tcpdump命令監(jiān)視指定網(wǎng)絡(luò)數(shù)據(jù)包的方法

    linux使用tcpdump命令監(jiān)視指定網(wǎng)絡(luò)數(shù)據(jù)包的方法,大家參考使用吧
    2013-12-12
  • Linux中的冷熱頁機制簡述

    Linux中的冷熱頁機制簡述

    這篇文章主要為大家詳細介紹了Linux中的冷熱頁機制,什么是冷熱頁?為什么要有冷熱頁?感興趣的小伙伴們可以參考一下
    2016-09-09
  • 用DNSPod和Squid打造自己的CDN (五) 安裝Squid的前期準備

    用DNSPod和Squid打造自己的CDN (五) 安裝Squid的前期準備

    從本章開始,大家將會學到如何在Linux下面安裝、編譯程序,還會學到程序編譯的優(yōu)化方法,最后會通過源代碼編譯的方式把Squid安裝上
    2013-04-04
  • Ubuntu18.04 Server版安裝及使用(圖文)

    Ubuntu18.04 Server版安裝及使用(圖文)

    這篇文章主要介紹了Ubuntu18.04 Server版安裝及使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 解決Linux下Mysql5.7忘記密碼問題

    解決Linux下Mysql5.7忘記密碼問題

    這篇文章主要介紹了解決Linux下Mysql5.7忘記密碼問題,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Linux創(chuàng)建文件的五種方法

    Linux創(chuàng)建文件的五種方法

    本文介紹五種在Linux系統(tǒng)中創(chuàng)建文件的方法,包括使用touch命令、使用文本編輯器創(chuàng)建文件、使用echo命令創(chuàng)建文件、使用cat命令創(chuàng)建文件以及使用重定向符號創(chuàng)建文件,全面了解并掌握在Linux系統(tǒng)中創(chuàng)建文件的各種常用方法,需要的朋友可以參考下
    2025-03-03
  • 如何為CentOS 7配置靜態(tài)IP地址的兩種方法

    如何為CentOS 7配置靜態(tài)IP地址的兩種方法

    本篇文章主要介紹了如何為CentOS 7配置靜態(tài)IP地址的幾種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02

最新評論

牙克石市| 赫章县| 潍坊市| 喀喇| 突泉县| 灵台县| 太康县| 连城县| 阜康市| 蒙山县| 宝鸡市| 砀山县| 清远市| 哈巴河县| 墨脱县| 浦北县| 仲巴县| 锦州市| 信丰县| 泰和县| 磐安县| 阳城县| 伊通| 博野县| 福州市| 辽阳县| 成武县| 台中县| 库车县| 和田市| 平阴县| 杭锦旗| 安多县| 漳浦县| 台南县| 抚州市| 汉源县| 凤山市| 达拉特旗| 海口市| 铜川市|