2014-04-14 27 views
0

我正在設計一個JPG解碼器。一個實現支持使用線程和擴展CPU的多個內核。如果底層系統支持3個內核,我的程序將使用它們全部。使用所有核心資源或旨在減輕貪婪程序的系統是不負責任的行爲。另外,線程實現還需要更多的內存資源(3 x等效RGB BMP的大小)。內存使用何時變得太多?使用所有可用的內核和CPU是否不負責任?

+0

讓**用戶**選擇他們想要專用於特定任務的核心數量。 –

+0

你認爲啓動線程等等來解碼通常的JPG文件,每個文件是否有益?我不是。內存:代碼? – deviantfan

+0

@CaptainObvlious我認爲這將超出用戶的知識範圍。 – deanresin

回答

1

它是不負責任的使用所有的核心資源

不,事實並非如此。考慮一個單一的核心繫統:如果它以某種方式使用所有核心是「不負責任的」,那麼任何事情都無法完成。

或者是旨在減輕貪婪程序

是的,操作系統是專門做這個系統。通常,兩個同等優先級的程序(每個要使用所有CPU核心)將共享內核50%-50%(按時間而不是核心分配)。每個應用程序都會相信它正在使用所有內核,但是某些內核可能會比其他內核運行得慢一些。應用程序不需要關注這個級別的細節(儘管通常操作系統提供了這種方法來實現,如果需要的話)。

+0

好吧,謝謝..我立即明白了。我想這解釋了爲什麼我的多線程實現比我的單線程實現慢得多。 – deanresin

相關問題