日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统编程----12(线程概念,Linux线程实现原理,栈中ebp指针和ebp指针,线程的优缺点和共享资源)

發布時間:2023/11/30 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统编程----12(线程概念,Linux线程实现原理,栈中ebp指针和ebp指针,线程的优缺点和共享资源) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線程概念

什么是線程

  • 在一個程序里的一個執行路線就叫做線程(thread)。
  • 更準確的定義是:線程是“一個進程內部的控制序列” 一切進程至少都有一個執行線程
  • 線程在進程內部運行,本質是在進程地址空間內運行
  • 在Linux系統中,在CPU眼中,看到的PCB都要比傳統的進程更加輕量化
  • 透過進程虛擬地址空間,可以看到進程的大部分資源,將進程資源合理分配給每個執行流,就形成了線程 執行流
  • LWP:light weight process 輕量級進程
  • 進程:獨立地址空間,擁有 PCB
  • 線程:也有 PCB,但沒有獨立的地址空間(共享) 區別:在于是否共享地址空間。
    獨居(進程);合租(線程)。
    Linux 下:
    線程:最小的執行單位
    進程:最小分配資源單位,可看成是只有一個線程的進程。

    一個進程創建多少個線程,他們都共用一塊地址空間,但是線程越多,占用cpu越多,也就是cpu分的時間片越多,效率越高。因為線程是最小的執行單位,要被執行,必須要用cpu。
  • Linux內核線程實現原理

    類 Unix 系統中,早期是沒有“線程”概念的,80 年代才引入,借助進程機制實現出了線程的概念。因此在這 類系統中,進程和線程關系密切。

  • 輕量級進程(light-weightprocess),也有 PCB,創建線程使用的底層函數和進程一樣,都是 clone
  • 從內核里看進程和線程是一樣的,都有各自不同的 PCB,但是 PCB 中指向內存資源的三級頁表是相同的
  • 進程可以蛻變成線程
  • 線程可看做寄存器和棧的集合
  • 在 linux 下,線程最是小的執行單位;進程是最小的分配資源單位
  • 線程1和線程2程序內部執行的函數不會一樣,所以對應的棧不一樣。

    Linux操作系統中cpu劃分時間輪片的依據

    查看 LWP 號:ps –Lf pid** 查看指定線程的 lwp 號。不是線程ID**

    注意

  • 對于進程來說,相同的地址(同一個虛擬地址)在不同的進程中,反復使用而不沖突。原因是他們雖虛擬地址一樣,
  • 進程的頁目錄、頁表、物理頁面各不相同。相同的虛擬地址,映射到不同的物理頁面內存單元,最終訪問不同的物理頁 面。
  • 線程不同。兩個線程具有各自獨立的 PCB,但共享同一個頁目錄,也就共享同一個頁表和物理頁面。所以 兩個 PCB 共享一個地址空間。 實際上,無論是創建進程的 fork,還是創建線程的 pthread_create,底層實現都是調用同一個內核函數 clone。
    如果復制對方的地址空間,那么就產出一個“進程”;如果共享對方的地址空間,就產生一個“線程”。
  • 因此:Linux 內核是不區分進程和線程的。只在用戶層面上進行區分。所以,線程所有操作函數 pthread_ 是 庫函數,而非系統調用。*
  • 線程共享資源

  • 文件描述符表
  • 每種信號的處理方式
  • 當前工作目錄
  • 用戶 ID 和組 ID
  • 內存地址空間 (.text/.data/.bss/heap/共享庫)沒有stack
  • 線程非共享資源

  • 線程 id
  • 處理器現場和棧指針(內核棧)
  • 獨立的棧空間(用戶空間棧)
  • errno 變量
  • 信號屏蔽字
  • 調度優先級
  • 線程優、缺點

    優點:

  • 提高程序并發性
  • 開銷小
  • 數據通信、共享數據方便
  • 創建一個新線程的代價要比創建一個新進程小得多
  • 與進程之間的切換相比,線程之間的切換需要操作系統做的工作要少很多
  • 線程占用的資源要比進程少很多
  • 能充分利用多處理器的可并行數量
  • 在等待慢速I/O操作結束的同時,程序可執行其他的計算任務
  • 計算密集型應用,為了能在多處理器系統上運行,將計算分解到多個線程中實現
  • I/O密集型應用,為了提高性能,將I/O操作重疊。線程可以同時等待不同的I/O操作。
  • 缺點:

  • 庫函數,不穩定 ,進程中時庫函數
  • 調試、編寫困難、gdb 不支持
  • 對信號支持不好 優點相對突出,缺點均不是硬傷。
  • 線程間缺乏訪問控制,編碼難度更高
  • 線程健壯性更低
    Linux 下由于實現方法導致進程、線程差別不是很大。
  • 總結

    以上是生活随笔為你收集整理的Linux系统编程----12(线程概念,Linux线程实现原理,栈中ebp指针和ebp指针,线程的优缺点和共享资源)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩a级片 | 国产精品2 | 怡红院一区二区三区 | 韩国三级中文字幕 | 亚洲熟女www一区二区三区 | 亚洲精品在线观看网站 | 无码人妻精品一区二区三应用大全 | 男人天堂999 | 精品欧美 | 亚洲午夜久久久久久久久久久 | 91麻豆国产精品 | 超碰caopor| 大乳女喂男人吃奶 | 日韩和一区二区 | aaaaav| 午夜少妇av | 亚洲一区二区激情 | 亚洲综合二区 | 国产日韩欧美在线观看 | 老牛av一区二区 | 黑人玩弄人妻一区二 | 4hu在线观看 | 韩毛片 | 久久99一区二区 | 久久精品aaaaaa毛片 | 亚洲乱亚洲乱妇 | 国产伦理片在线观看 | 香蕉久久a毛片 | 亚洲国产精品毛片av不卡在线 | 97精品熟女少妇一区二区三区 | 国产成人精品一区 | 久久免费在线 | 最新日韩一区 | 欧美亚洲国产另类 | 巨乳美女被爆操 | 阿v天堂2018 俄罗斯丰满熟妇hd av色吧 | 日日干夜夜操 | 中国精品毛片 | 天天亚洲 | 亚洲精品中文字幕在线观看 | 一区二区三区观看 | 欧美另类性 | 国产精品视频在 | 国产欧美在线精品日韩 | 欧美另类性 | 一区二区三区免费 | 欧美激情免费视频 | 无码国产伦一区二区三区视频 | 日韩视频在线免费 | 一区三区视频在线观看 | 欧美三级韩国三级日本三斤在线观看 | 日韩美女视频网站 | 性色欲网站人妻丰满中文久久不卡 | 亚洲综合激情在线 | 黄色片视频免费看 | 成人免费黄色片 | 成年人免费网 | 欧美成人精品在线观看 | 亚洲国产成人综合 | 日韩一区二区在线免费观看 | 久久超级碰碰 | 国产精品免费久久 | 国产八区 | 激情 亚洲 | 国产成人tv | 特大黑人巨交吊性xxxxhd | 国产大学生自拍视频 | 国产一区视频在线 | 欧美浪妇xxxx高跟鞋交 | 少妇又色又爽又高潮极品 | 超碰在线天天 | 久久精品国产精品亚洲 | 一级特黄aaa大片 | 久久免费手机视频 | 中国女人黄色大片 | 娇小6一8小毛片 | 激情狠狠 | 野外性满足hd | 超黄av | 亚洲好视频| 国产精品成人午夜视频 | 少妇一区二区三区四区 | 国模精品一区二区三区 | 久久女同互慰一区二区三区 | 伊人春色网| 欧美变态绿帽cuckold | 久久精品无码一区二区三区 | 免费观看a级片 | 亚洲先锋影音 | www.精品一区| 欧美一区二区福利视频 | 欧美另类日韩 | 蜜臀久久99精品久久久久久宅男 | 天降女子在线观看 | 国产精品久久影院 | 无码久久av一区二区三区 | 成人黄色国产 | 我们2018在线观看免费版高清 | 97免费人妻无码视频 |