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

淺談linux模擬多線程崩潰和多進(jìn)程崩潰

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

結(jié)論是:
多線程下如果其中一個(gè)線程崩潰了會(huì)導(dǎo)致其他線程(整個(gè)進(jìn)程)都崩潰;
多進(jìn)程下如果其中一個(gè)進(jìn)程崩潰了對(duì)其余進(jìn)程沒(méi)有影響;

多線程

#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;
}

多進(jìn)程

#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));  //等待所有子進(jìn)程結(jié)束
 printf("main return\n");
 getchar();
 
 return 0;
}

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

相關(guān)文章

  • Vim的分屏功能命令大全

    Vim的分屏功能命令大全

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

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

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

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

    通常利用Apache的rewrite模塊對(duì) URL 進(jìn)行重寫(xiě)的時(shí)候, rewrite規(guī)則會(huì)寫(xiě)在 .htaccess 文件里。但要使 apache 能夠正常的讀取.htaccess 文件的內(nèi)容,就必須對(duì).htaccess 所在目錄進(jìn)行配置。
    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中的冷熱頁(yè)機(jī)制簡(jiǎn)述

    Linux中的冷熱頁(yè)機(jī)制簡(jiǎn)述

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

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

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

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

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

    解決Linux下Mysql5.7忘記密碼問(wèn)題

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

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

    本文介紹五種在Linux系統(tǒng)中創(chuàng)建文件的方法,包括使用touch命令、使用文本編輯器創(chuàng)建文件、使用echo命令創(chuàng)建文件、使用cat命令創(chuàng)建文件以及使用重定向符號(hào)創(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地址的幾種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02

最新評(píng)論

阿荣旗| 安图县| 嵊泗县| 临潭县| 宁化县| 额尔古纳市| 滁州市| 阜新| 鹤岗市| 保靖县| 渭源县| 普兰店市| 江安县| 仙桃市| 大安市| 泰安市| 奈曼旗| 墨脱县| 松原市| 扎鲁特旗| 南昌市| 徐州市| 辽中县| 泾川县| 静乐县| 安图县| 黔南| 株洲县| 望谟县| 军事| 藁城市| 安泽县| 于田县| 毕节市| 扬州市| 青川县| 鄂伦春自治旗| 嘉峪关市| 枞阳县| 龙胜| 湄潭县|