激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux和Windows區別分析之線程問題

Linux和Windows區別分析之線程問題

2020-04-08 20:41Linux教程網 Linux

熟悉WIN32編程的人一定知道,WIN32的進程管理方式與 Linux 上有著很大區別,在Unix里,只有進程的概念,但在WIN32里卻還有一個 線程 的概念,那么Linux和WIN32在這里究竟有著什么區別呢? WIN32里的進程/線程是繼承自OS/2的。在WIN32里,進

熟悉WIN32編程的人一定知道,WIN32的進程管理方式與Linux上有著很大區別,在Unix里,只有進程的概念,但在WIN32里卻還有一個"線程"的概念,那么Linux和WIN32在這里究竟有著什么區別呢?

WIN32里的進程/線程是繼承自OS/2的。在WIN32里,"進程"是指一個程序,而"線程"是一個"進程"里的一個執行"線索"。從核心上講, WIN32的多進程與Linux并無多大的區別,在WIN32里的線程才相當于Linux的進程,是一個實際正在執行的代碼。但是,WIN32里同一個進程里各個線程之間是共享數據段的。這才是與Linux的進程最大的不同。

下面這段程序顯示了WIN32下一個進程如何啟動一個線程。

  1. int g; 
  2.  
  3. DWORD WINAPI ChildProcess( LPVOID lpParameter ){ 
  4.  
  5. int i; 
  6.  
  7. for ( i = 1; i <1000; i ++) { 
  8.  
  9. g ++; 
  10.  
  11. printf( "This is Child Thread: %d\n", g ); 
  12.  
  13.  
  14. ExitThread( 0 ); 
  15.  
  16. }; 
  17.  
  18. void main() 
  19.  
  20.  
  21. int threadID; 
  22.  
  23. int i; 
  24.  
  25. g = 0; 
  26.  
  27. CreateThread( NULL, 0, ChildProcess, NULL, 0, &threadID ); 
  28.  
  29. for ( i = 1; i <1000; i ++) { 
  30.  
  31. g ++; 
  32.  
  33. printf( "This is Parent Thread: %d\n", g ); 
  34.  
  35.  

在WIN32下,使用CreateThread函數創建線程,與Linux下創建進程不同,WIN32線程不是從創建處開始運行的,而是由 CreateThread指定一個函數,線程就從那個函數處開始運行。此程序同前面的UNIX程序一樣,由兩個線程各打印1000條信息。 threadID是子線程的線程號,另外,全局變量g是子線程與父線程共享的,這就是與Linux最大的不同之處。大家可以看出,WIN32的進程/線程要比Linux復雜,在Linux要實現類似WIN32的線程并不難,只要fork以后,讓子進程調用ThreadProc函數,并且為全局變量開設共享數據區就行了,但在WIN32下就無法實現類似fork的功能了。所以現在WIN32下的C語言編譯器所提供的庫函數雖然已經能兼容大多數Linux/UNIX的庫函數,但卻仍無法實現fork。

對于多任務系統,共享數據區是必要的,但也是一個容易引起混亂的問題,在WIN32下,一個程序員很容易忘記線程之間的數據是共享的這一情況,一個線程修改過一個變量后,另一個線程卻又修改了它,結果引起程序出問題。但在Linux下,由于變量本來并不共享,而由程序員來顯式地指定要共享的數據,使程序變得更清晰與安全。

至于WIN32的"進程"概念,其含義則是"應用程序",也就是相當于UNIX下的exec了。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 日本免费不卡一区二区 | 欧美va亚洲 | 欧美一级精品 | 99亚洲视频| 毛片成人网 | 最新久久免费视频 | 欧美a在线播放 | 国产中出在线观看 | 久产久精品 | 久久91精品久久久久清纯 | 免费看成年人视频在线 | 久久国产精 | 亚洲精品久久久久www | 黄色毛片免费看 | qyl在线视频精品免费观看 | 亚洲国产美女视频 | 亚洲国产精品久久久久婷婷老年 | 欧美国产成人在线 | 国产精品99久久久久久久女警 | 国产精选久久久 | 久久国产一级片 | 亚洲国产视频在线 | 国产91久久久久久 | 亚洲国产精品99 | 欧美性videofree精品 | 久久久久久久一区二区 | 国产1区在线 | 黄色三级三级三级 | 国产青草视频在线观看视频 | av电影院在线观看 | 国产自在自线午夜精品视频在 | 久久91精品视频 | 成年人黄视频 | 色毛片 | 欧美精品一区二区三区四区 | 一区二区三区日韩电影 | 性猛aa久久久 | 美女亚洲综合 | 国产日韩欧美 | 影视免费观看 | 韩毛片|