java面試題14--程序和執行緒的差別
[美國某著名軟體公司2005年面試題]
答案:
* 程序是程式的一次執行。
* 執行緒可以理解為程序中執行的一段程式片段。 在一個多工環境中下面的概念可以幫助我們理解兩者間的差別。
* 程序間是獨立的,這表現在記憶體空間、 上下文環境上;執行緒執行在程序空間內。
* 一般來講(不使用特殊技術),程序無法突破程序邊界存取其他程序內的儲存空間;而執行緒由於處於程序空間內,所以同一程序所產生的執行緒共享同一記憶體空間。
* 同一程序中的兩段程式碼不能夠同時執行,除非引入執行緒。
* 執行緒是屬於程序的,當程序退出時該程序所產生的執行緒都會被強制退出並清除。 執行緒佔用的資源要少於程序所佔用的資源。 程序和執行緒都可以有優先順序。
程序間可以通過IPC通訊,但執行緒不可以。
相關推薦
java面試題14--程序和執行緒的差別
[美國某著名軟體公司2005年面試題] 答案: * 程序是程式的一次執行。 * 執行緒可以理解為程序中執行的一段程式片段。 在一個多工環境中下面的概念可以幫助我們理解兩者間的差別。
Java執行緒面試題之程序和執行緒的區別
1.定義 程序:具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位. 執行緒:程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一
騰訊面試題04.程序和執行緒的區別?
程序和執行緒的區別? 程序和執行緒的主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的地址空間,一個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是一個程序中的不同執行路徑。執行緒有自己的堆疊和區域性變數,但執行緒之間沒有單獨的地址空間,一個執行緒死掉就
Java常用面試題14 如何暫停執行緒Sleep和Wait 你能分清楚嗎?
問: Thread類的sleep()方法和Object類的wait()方法都可以讓執行緒暫停執行,它們有什麼區別? 答: sleep()方法(休眠)是執行緒類(Thread)的靜態方法,呼叫此方法會讓當前執行緒暫停執行指定的時間,將執行機會(CPU)讓給其他執行緒,但是
Java面試題:Servlet是執行緒安全的嗎?
轉自: http://www.cnblogs.com/chanshuyi/p/5052426.html Servlet不是執行緒安全的。 要解釋為什麼Servlet為什麼不是執行緒安全的,需要了解Servlet容器(即Tomcat)使如何響應HTTP請求的。
java面試題之什麼是執行緒ThreadLocal?作用是什麼?
定義:執行緒區域性變數是侷限於執行緒內的變數,屬於執行緒自身所有,不在多個執行緒間共享。java提供ThreadLocal類來支援執行緒區域性變數,是一個實現執行緒安全的方式。 任何執行緒區域性變數一旦在工作完成後沒有釋放,java應用就存在記憶體洩露的風險 作用:ThreadLocal是
10042---Java面試題:Servlet是執行緒安全的嗎?
servlet不是執行緒安全的。 要解釋為什麼Servlet為什麼不是執行緒安全的,需要了解Servlet容器(即Tomcat)使如何響應HTTP請求的。 當Tomcat接收到Client的HTTP請求時,Tomcat從執行緒池中取出一個執行緒,之後找到該請求對應的Serv
java面試題---請用多執行緒寫死鎖
java面試題---用多執行緒寫死鎖 (請參考本部落格對同步鎖的文章進行理解) public class dead { public static void main(String[] args)
一道非常棘手的 Java 面試題:i++ 是執行緒安全的嗎
i++ 是執行緒安全的嗎? 相信很多中高階的 Java 面試者都遇到過這個問題,很多對這個不是很清楚的肯定是一臉蒙逼。內心肯定還在質疑,i++ 居然還有執行緒安全問題?只能說自己瞭解的不夠多,自己的水平有限。 先來看下面的示例來驗證下 i++ 到底是不是執行緒安全的。
一道面試題:說說程序和執行緒的區別
在理解這些概念之前首選要對併發有一定的感性認識,如果伺服器同一時間內只能服務於一個客戶端,其他客戶端都再那裡傻等的話,可見其效能的低下估計會被客戶罵出翔來,因此併發程式設計應運而生,併發是網路程式設計中必須考慮的問題。實現併發的方式有多種:比如多程序、多執行緒、IO多路複用。 在理解這些概念
面試題:1,程序和執行緒的區別?什麼時候用程序?什麼時候用執行緒?為什麼你的專案中用的是執行緒?為什麼不用程序?如果只有程序,對你這個專案有沒有影響?
答:首先得知道什麼是程序什麼是執行緒,我的理解是程序是指在系統中正在執行的一個應用程式;程式一旦執行就是程序,或者更專業化來說:程序是指程式執行時的一個例項,即它是程式已經執行到課中程度的資料結構的彙集。從核心的觀點看,程序的目的就是擔當分配系統資源(CPU時間、記憶體等)的
[面試] 程序和執行緒的區別(面試題)
程序和執行緒都是由作業系統所體現的程式執行的基本單元,系統利用該基本單元實現系統對應用的併發性。程序和執行緒的區別在於: 簡而言之,一個程式至少有一個程序,一個程序至少有一個執行緒. 執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。 另外,程序在執行過程中擁有
java多執行緒:1程序和執行緒
多執行緒樣例 我們用工人卸貨舉例:有一集裝箱的貨物等待卸車,共100個箱子,一個工人一次只能搬一個箱子。 如果只有一個工人,那麼該工人需要搬運100次,而且是不停歇的搬運。 如果有5個或者10個工人,那麼平均每個工人只需要搬運20或者10次就可以了。 甚至有1
java中程序和執行緒以及執行緒的狀態和方法
程序是cpu資源分配的最小單位,執行緒是cpu排程的最小單位。 一個程式至少有一個程序,一個程序至少有一個執行緒. 執行緒的劃分尺度小於程序,使得多執行緒程式的併發性高。 另外,程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,從而極大地提高了程式的執行效率。
java 程序和執行緒的區別與聯絡
程式:一段靜態的程式碼,一組指令的有序集合,它本身沒有任何執行的含義,它只是一個靜態的實體,是應用軟體執行的藍本。 程序:是程式的一次動態執行,它對應著從程式碼載入,執行至執行完畢的一個完整的過程,是一個動態的實體,它有自己的生命 週期。它因
java多執行緒:1、程式、程序和執行緒
宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!! 文章目錄 程式 程序 執行緒 程式 是計算機指令的集合,它以檔案的形式儲存在磁碟上。 程序 是一個程式在其自身的地址空間中的一次執行活動。 如:當我
java多執行緒面試題:三個執行緒順序列印ABC,重複10次
這個面試題,比較經典。有不同的解決思路。有的博文是用Join去實現。我面試的時候也是第一個想到的是用join叫A執行緒等待B執行緒執行完再執行。這樣的思路能實現,但是不好。雖然當時湊合著說服了面試官。先把程式碼貼出來 private Thread aThread,bThr
Java多執行緒和記憶體模型(一):程序和執行緒基礎
Java多執行緒和記憶體模型(一) 由於java是執行在 JVM上 的,所以需要涉及到 JVM 的記憶體模型概念,需要理解記憶體模型,就需要多執行緒的基礎; 而執行緒是基於載體執行緒裡的,所以我們藉由作業系統的程序來講一講。 程序 什麼是程序?
Java進階 ——— Java多執行緒(一)之程序和執行緒
引言 講到執行緒,不可避免的提到程序。而因為執行緒無法脫離程序單獨存在,那什麼是程序? 延伸閱讀,Java多執行緒系列文章 什麼是程序? 程序:具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的最小單位。 例如手機執行的眾多
Python學習筆記(14)-Python中的程序和執行緒
1.多程序 1.1建立程序 Unix/Linux/Mac作業系統都可以使用fork()函式來建立子程序,分別在父程序和子程序內返回,例如 程式碼: import os # 匯入os模組 print ('當前程序的ID是:%s' % os.g