老男孩教育每日一題-2017年3月23日-請問多線程與多進程的區別,在什麼時候用線程或進程更合適?

來源:互聯網
上載者:User

標籤:多線程   多進程   每日一題   

解答:

進程:

優點:多進程可以同時利用多個CPU,能夠同時進行多個操作。

缺點:耗費資源(建立一個進程重新開闢記憶體空間)。

進程不是越多越好,一般進程個數等於cpu個數。

 

線程:

優點:共用記憶體,尤其是進行IO操作(網路、磁碟)的時候(IO操作很少用cpu),可以使用多線程執行並行作業。

缺點:搶佔資源。

線程也不是越多越好,具體案例具體分析,切換線程關係到請求環境切換耗時。

電腦中執行任務的最小單元:線程。

 

IO密集型(不用cpu):多線程

計算密集型(用cpu):多進程

 

  • 網友精品回答:

耶穌的道路2017/03/23 10:50:40

多線程和多進程是兩個截然不同的概念。進程是核心分配給一個應用的相對獨立的地址空間,有著自己的堆棧地址,當然是虛擬,這樣就保護了核心,使核心和應用隔離,個個具體的應用之間隔離,當然他們之間是可以通訊的,這取決於作業系統。

線程是我們程式員最關注的,也就是我們在具體應用中的功能實現。分為主線程和子線程,在Android開發中我們稱主線程為UI線程,在JavaEE和Windows開發中就是main函數等等,既然這樣那麼什麼操作放在主線程中,什麼操作放在子線程中,大致是這樣,費時的操作和消耗資源也就是占記憶體的操作放在子線程中,更新UI之類的放在主線程中,他們之間通過訊息傳遞實現。

像查詢資料庫、連網上傳檔案啊,斷點續傳和下載大資料檔案啊等等操作都應該放在子線程中。

多線程的應用雖然提高了CPU的利用率,卻也帶來安全問題。熊掌和魚不可兼得,如何處理效率和安全的問題,真的是考驗一個程式員水平的現實問題。


本文出自 “李導的部落格” 部落格,請務必保留此出處http://lidao.blog.51cto.com/3388056/1914576

老男孩教育每日一題-2017年3月23日-請問多線程與多進程的區別,在什麼時候用線程或進程更合適?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.