熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

同一進程中的線程究竟共享哪些資源

2013-11-23 19:37:22  來源: Java核心技術 

  線程共享的環境包括進程代碼段進程的公有數據(利用這些共享的數據線程很容易的實現相互之間的通訊)進程打開的文件描述符信號的處理器進程的當前目錄和進程用戶ID與進程組ID     進程擁有這許多共性的同時還擁有自己的個性有了這些個性線程才能實現並發性這些個性包括

  線程ID

  每個線程都有自己的線程ID這個ID在本進程中是唯一的進程用此來標   識線程    寄存器組的值

  由於線程間是並發運行的每個線程有自己不同的運行線索當從一個線   程切換到另一個線程上時必須將原有的線程的寄存器集合的狀態保存以便   將來該線程在被重新切換到時能得以恢復    線程的堆棧

  堆棧是保證線程獨立運行所必須的

  線程函數可以調用函數而被調用函數中又是可以層層嵌套的所以線程   必須擁有自己的函數堆棧使得函數調用可以正常執行不受其他線程的影   響

  錯誤返回碼

  由於同一個進程中有很多個線程在同時運行可能某個線程進行系統調用   後設置了errno值而在該線程還沒有處理這個錯誤另外一個線程就在此時   被調度器投入運行這樣錯誤值就有可能被修改

  所以不同的線程應該擁有自己的錯誤返回碼變量

  線程的信號屏蔽碼

  由於每個線程所感興趣的信號不同所以線程的信號屏蔽碼應該由線程自   己管理但所有的線程都共享同樣的信號處理器

  線程的優先級

  由於線程需要像進程那樣能夠被調度那麼就必須要有可供調度使用的參   數這個參數就是線程的優先級


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27193.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.