多核對于單核的好處是可以真正地同時處理多件事情,因此如果程序想要在多核CPU上獲得更好的性能的話,使用多線程技術(shù)是必需的。
但是采用多線程涉及到線程間數(shù)據(jù)同步的問題,程序員必須在線程間協(xié)調(diào)好對數(shù)據(jù)的訪問和處理。不過我覺得多核編程與單核編程的區(qū)別并不是指線程同步問題,因為單核編程同樣可以使用多線程,同樣需要面對線程同步的問題。同樣的代碼不經(jīng)過特別優(yōu)化,均可以在多核CPU和單核CPU上運行得很好,只不過運行效率不同罷了。所以我覺得多核編程和單核編程的區(qū)別在于對多線程技術(shù)需求的迫切程度。如果程序針對多核環(huán)境來編程,那么必然要采用多線程技術(shù),以獲得更好的性能;如果程序只針對單核環(huán)境,那么對多線程并不是那么敏感,但如果它采用了多線程,一旦在多核環(huán)境運行,它也能獲得性能的提升。