摘要:一圖讀懂線程與進(jìn)程一個(gè)進(jìn)程可以包含一個(gè)或多個(gè)線程。棧幀中保存了該函數(shù)的返回地址和局部變量。公眾號貓說現(xiàn)架構(gòu)設(shè)計(jì)碼農(nóng)兼創(chuàng)業(yè)技術(shù)顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。
本博客 貓叔的博客,轉(zhuǎn)載請申明出處前言
本系列將由淺入深,學(xué)習(xí)Java并發(fā)多線程。
一圖讀懂線程與進(jìn)程1、一個(gè)進(jìn)程可以包含一個(gè)或多個(gè)線程。(其實(shí)你經(jīng)常聽到“多線程”,沒有聽過“多進(jìn)程”嘛)
2、進(jìn)程存在堆和方法區(qū)
3、線程存在程序計(jì)數(shù)器和棧
4、堆占最大內(nèi)存,其為創(chuàng)建時(shí)分配的,是多線程共享的,主要存放new創(chuàng)建的對象
5、方法區(qū)也是多線程共享的,主要存放類、常量、靜態(tài)變量
6、CPU的基本執(zhí)行單位是線程(注意!不是進(jìn)程)
7、由此,線程需要一個(gè)程序計(jì)數(shù)器記錄當(dāng)前線程要執(zhí)行的指令地址
8、當(dāng)CPU的時(shí)間片用完,讓出后記錄當(dāng)前執(zhí)行地址,下次繼續(xù)執(zhí)行(時(shí)間片輪詢)
9、只有執(zhí)行Java代碼時(shí)pc技數(shù)器記錄的才是下一條指令的地址,執(zhí)行native方法,則記錄的是undefined地址
10、線程中的棧,只要存儲線程局部變量、調(diào)用棧幀
棧幀:C語言中,每個(gè)棧幀對應(yīng)著一個(gè)未運(yùn)行完的函數(shù)。棧幀中保存了該函數(shù)的返回地址和局部變量。公眾號:Java貓說
現(xiàn)架構(gòu)設(shè)計(jì)(碼農(nóng))兼創(chuàng)業(yè)技術(shù)顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/73320.html
摘要:再者,現(xiàn)在互聯(lián)網(wǎng)的面試中上點(diǎn)的都會涉及一下或者的問題個(gè)高級多線程面試題及回答后端掘金在任何面試當(dāng)中多線程和并發(fā)方面的問題都是必不可少的一部分。假如源碼分析之掘金概念是中集合的一種實(shí)現(xiàn)。 攻破 JAVA NIO 技術(shù)壁壘 - 后端 - 掘金現(xiàn)在使用NIO的場景越來越多,很多網(wǎng)上的技術(shù)框架或多或少的使用NIO技術(shù),譬如Tomcat,Jetty。學(xué)習(xí)和掌握NIO技術(shù)已經(jīng)不是一個(gè)JAVA攻城獅...
摘要:隊(duì)列中有元素時(shí),就說明有過期了,線程繼續(xù)執(zhí)行,然后元素出隊(duì),根據(jù)相應(yīng)的移除緩存。所以嚴(yán)格來說,雖然實(shí)現(xiàn)了隊(duì)列接口,但是它的目的卻并不是隊(duì)列,而是將生產(chǎn)者消費(fèi)者線程配對。轉(zhuǎn)移隊(duì)列鏈?zhǔn)睫D(zhuǎn)移隊(duì)列。 引言 本周在編寫短信驗(yàn)證碼頻率限制切面的時(shí)候,經(jīng)潘老師給的實(shí)現(xiàn)思路,使用隊(duì)列進(jìn)行實(shí)現(xiàn)。 看了看java.util包下的Queue接口,發(fā)現(xiàn)還從來沒用過呢! Collection集合類接口,由它派生...
摘要:導(dǎo)讀閱讀本文需要有足夠的時(shí)間,筆者會由淺到深帶你一步一步了解一個(gè)資深架構(gòu)師所要掌握的各類知識點(diǎn),你也可以按照文章中所列的知識體系對比自身,對自己進(jìn)行查漏補(bǔ)缺,覺得本文對你有幫助的話,可以點(diǎn)贊關(guān)注一下。目錄一基礎(chǔ)篇二進(jìn)階篇三高級篇四架構(gòu)篇五擴(kuò) 導(dǎo)讀:閱讀本文需要有足夠的時(shí)間,筆者會由淺到深帶你一步一步了解一個(gè)資深架構(gòu)師所要掌握的各類知識點(diǎn),你也可以按照文章中所列的知識體系對比自身,對自己...
線程池ExecutorService 一. new Thread的弊端 執(zhí)行一個(gè)異步任務(wù)你還只是如下new Thread嗎? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 那你就太out了,...
閱讀 3477·2021-11-24 09:39
閱讀 1864·2021-11-17 09:33
閱讀 3821·2021-10-12 10:12
閱讀 5224·2021-09-22 15:51
閱讀 1166·2019-08-30 13:11
閱讀 3626·2019-08-30 10:59
閱讀 646·2019-08-30 10:48
閱讀 1375·2019-08-26 13:48