如果我在linux上编写多线程C应用程序(使用pthreads),我可以利用多核处理器。
我的意思是应用程序员应该如何利用多核处理器。或者仅仅是操作系统通过各种调度算法来实现这一点
答案 0 :(得分:2)
你不需要做任何事情。根据需要创建尽可能多的线程,操作系统会将它们与来自所有其他进程的线程一起安排在每个可用内核上。
答案 1 :(得分:0)
"充分利用多核"可以被理解为意味着"利用多核。"
或者它可能意味着从利用多核获得定性优势。"
任何人都可以做前者。它们通常最终会使用比单线程运行速度慢的软件。
后者是完全不同的主张。它需要编写软件,以便节省所有内核(总线锁定,RAM和L3高速缓存)共享的计算资源的使用和访问,并专注于主要在各个内核及其L1高速缓存中进行尽可能多的计算。 L2缓存通常由两个内核共享,因此它位于两个类别之间,是的,它是一个共享资源,但它只由两个内核共享,并且比所有内核共享的资源快得多。 / p>
这是在实现级别,编写和测试代码。
早期阶段做出的决定 - 特别是系统的软件架构阶段 - 通常对系统的长期质量和性能更为重要。