UNIX(進程間通信):02---父子進程之間的數據共享分析

之前我們通過fork()函數,得知了父子進程之間的存在著代碼的拷貝,且父子進程都相互獨立執行,那么父子進程是否共享同一段數據,即是否存在著數據共享。接下來我們就來分析分析父子進程是否存在著數據共享。

我們都知道,在linux下,內存存儲的位置是全局變量,棧區,堆區,以及文件。字符常量區我們這里不作分析。下面我們依次以實際代碼來驗證它們是否存在著數據共享。所謂的父子進程數據共享,通俗點說就是父進程或者子進程對于數據的更改,會使得子進程或者父進程的數據同步更改。代碼檢測的思想是讓父子進程中的一個修改數據,未對數據修改的進程調用數據,查看是否數據被修改,如果數據被修改,那么證明兩者之間存在著數據共享,反之沒有。

 

1、全局變量

代碼運行以及運行結果如下:

通過結果得知,子進程對數據a進行了修改,但是父進程獲取的數據確仍然是初始化的值。所以我們可以得知,在數據類型為全局變量時,父子進程之間的數據不共享。

 

2.棧區(局部變量區)

 

實現的代碼與全局相似,只需要將int a=0在主函數中聲明即可。這里直接給運行結果,不在展示源碼。

 </

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444272.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444272.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444272.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UNIX(進程間通信):03---僵尸進程

僵尸進程 僵尸進程是指一個已經終止、但是其父進程尚未對其進行善后處理獲取終止進程的有關信息的進程,這個進程被稱為“僵尸進程”(zombie)。 怎樣產生僵尸進程 一個進程在調用exit命令結束自己的生命的時候,其實它并沒有真正的被銷毀,而是留下一個稱為僵尸進程(Zomb…

Oracle中關于計算時間差的例子:

今天在做項目的時候遇到了這樣一個問題&#xff1a;就是要得到在線時長&#xff1a; 截圖如下&#xff1a;最后要達到如下效果&#xff1a; 我之前想了一種方案&#xff1a;我想通過SQL語句查庫&#xff0c;但是最后發現這種辦法還解決不了&#xff0c;最后我又想了一種&#…

UNIX(進程間通信):04---孤兒進程

上一篇文章講過僵尸進程,這里再分享給大家另外一種狀態。 孤兒進程 什么是孤兒進程?當一個子進程還在執行時,它的父進程已經退出了,那么這個子進程的退出信息也沒有被父進程接收到,如果子進程的退出信息沒有被別的進程接收到,那么這個子進程就會變成一個僵尸進程,所…

UNIX(進程間通信):05---守護進程

守護進程是在后臺運行不受終端控制的進程(如輸入、輸出等),一般的網絡服務都是以守護進程的方式運行。守護進程脫離終端的主要原因有兩點:(1)用來啟動守護進程的終端在啟動守護進程之后,需要執行其他任務。(2)(如其他用戶登錄該終端后,以前的守護進程的錯誤信息不應…

leetcode570. 至少有5名直接下屬的經理(SQL)

Employee 表包含所有員工和他們的經理。每個員工都有一個 Id&#xff0c;并且還有一列是經理的 Id。 ------------------------------------- |Id |Name |Department |ManagerId | ------------------------------------- |101 |John |A |null …

UNIX(進程間通信):16深入理解Socket

socket又叫套接字或者插口,它也是進程間通信的一種方式,實際上就是網絡上的通信節點,應用程序只需要鏈接到socket就可以和網絡上任何一個通信端點連接、傳送數據。socket封裝了通信的細節,我們可以不必關心通信協議內容而專注于應用程序開發。根據數據傳送方式,socket分為…

蘋果支付:如何解決沙盒環境下獲取可恢復購買項為空

在傳統手游開發中免不了和蘋果支付打交道,而且蘋果也會有各種奇奇怪怪的問題和BUG 。 曾經有一次某一個游戲出現了調單問題,現象如下(我有點懶,不想畫泳道圖或者時序圖): 客戶端拉起支付付款成功,OC底層收到支付成功回調->發送支付成功的收據到服務器驗…

leetcode25. K 個一組翻轉鏈表

給你一個鏈表&#xff0c;每 k 個節點一組進行翻轉&#xff0c;請你返回翻轉后的鏈表。 k 是一個正整數&#xff0c;它的值小于或等于鏈表的長度。 如果節點總數不是 k 的整數倍&#xff0c;那么請將最后剩余的節點保持原有順序。 示例 : 給定這個鏈表&#xff1a;1->2-…

游戲服務器架構:如何設計開發戰斗系統的技能和buff系統

戰斗系統中buff和skill如何配合 在網絡游戲中的戰斗形式多種多樣,不同游戲的戰斗邏輯也有很大的差異。但是一般都會涉及技能系統和buff系統,兩種之間相互關聯,技能可以產生buff作用在目標上,影響目標。同時buff也會影響技能的釋放效果,兩者都可以算得上游戲戰斗系統最重要…

一文徹底搞懂靜態庫和動態庫,顯示鏈接和隱式鏈接

定義&#xff1a;運行時庫 靜態庫 動態庫運行時庫&#xff1a;Unix中一個典型的運行時庫例子就是libc&#xff0c;它包含標準的C函數&#xff0c;如&#xff0c;print()&#xff0c;exit()等等&#xff0c;用戶能創建他們自己的運行庫&#xff08;在Windows中是DLL&#xff09;…

mysql的cpu高定位

導致數據庫CPU很高的原因有很多種,一般和慢SQL也有關(因為每條SQL要么占CPU高,要么占IO高,大體是這樣)。 (1)、如果服務器有多個mysql實例,需要通過top命令看看是哪個mysql實例導致的cpu高(如果不是mysql導致的cpu高,需要優化其他導致cpu的程序): (2)、定位到占用…

kubelet內存異常分析

背景: kubelet被重啟后, 內存再次升高, 在游戲啟動后,沒有進入大量玩家的情況下,2天時間占用接近10G,并且持續在增長, CPU偶爾負載高。AWS給出的解釋是containerd v1.4.0版本問題, 以下為內部分析過程。 實際情況 # 整體情況 [ec2-user@server]$ free -h …

游戲服務器架構-設計模式之發布訂閱模式

發布訂閱模式場景 熟悉消息中間件的同學應該對發布/訂閱模式(Publish Subscribe Pattern)并不陌生。即使你不了解消息中間件,那么在平時生活中發布/訂閱模式也是非常常見的場景。 比如你打開你的微信訂閱號,你訂閱的作者發布的文章,會廣播給每個訂閱者。在這個場景里,微信公…

leetcode129. 求根到葉子節點數字之和

給定一個二叉樹&#xff0c;它的每個結點都存放一個 0-9 的數字&#xff0c;每條從根到葉子節點的路徑都代表一個數字。 例如&#xff0c;從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點是指沒有子節點的節點。 …

游戲服務器架構-設計模式之觀察者模式和發布訂閱模式真的一樣嗎?

前面我給大家分享了觀察者模式和發布訂閱模式,有人私信給我說這倆不是一樣嘛,大體沒什么區別,我猜測大多數認為這兩者是一樣的可以繼續閱讀這兩篇文章,如果還不能解答你的問題,我相信這篇文章對比兩者的關系會讓你有更深刻的認識。 游戲服務器架構-設計模式之觀察者模式 游…

Struts2中s:iterator/s:iterator標簽的使用:

問題是這樣的&#xff1a; <s:iterator value"zhangjieList"> <s:property value"bb"/> </s:iterator> 我在頁面迭代了list里邊的值&#xff0c;我想限定只顯示100個字怎么做&#xff1f; 解決方案&#xff1a; <s:property valu…

聊一下CPU占用高的解決方案

前言: 在軟件開發和性能測試中,CPU占用率是服務器開發一個很重要的指標,到底有哪些因素會導致CPU占 用率上升呢?又有哪些手段可以降低CPU的占用率呢? 如果你看了這篇文章后仍然沒有解決項目問題的思路,請在下方留言或公眾號后臺留言。(后續我將更新一到兩篇…

一文搞懂 什么是CPU上下文?為什么要切換?如何減少切換?

自從上篇文章聊一下CPU占用高的解決方案更新后,最近收到了一些熱心觀眾的后臺留言,問到的一些問題比較集中的是關于CPU切換. 實際用C/C++,go開發,你會特別注意內存和CPU的使用情況,那些對于CPU使用情況特別關注,或者性能特別關注的朋友可以看看這篇文章,相信看完結尾的示…

leetcode257. 二叉樹的所有路徑

給定一個二叉樹&#xff0c;返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 輸入: 1 / \ 2 3 \ 5 輸出: ["1->2->5", "1->3"] 解釋: 所有根節點到葉子節點的路徑為: 1->2->5, 1->3 思…

內存優化-如何使用tcmalloc來提升內存性能?提升的結果太不可思議

無論是在游戲開發,或者其他長期運行的服務開發中,對內存的使用一直是架構師或者主程序在最初就要關注的point,如果內存使用不當,頻繁申請釋放內存造成系統負擔過大,性能降低,到最后產生大量內存碎片,無法申請可利用內存,最終宕機,給廣大程序員同學造成長期加班的痛苦。…