减少多线程应用程序中线程上下文切换的开销

时间:2012-06-12 13:43:23

标签: android arm

我在多线程应用程序中大致观察到以下趋势

No. of threads:  2
Application time: 5s 

No. of threads: 4 
Application time: 10s 

No. of threads: 8 
Application time: 20s 

No. of threads: 16 
Application time: 40s 

1 - 增加应用程序时间的原因是什么(假设我没有运行任何其他应用程序,并且我有足够的资源)?

2 - 我猜应用时间的增加是由于线程上下文切换开销的增加。如果我是正确的有什么方法可以减少这种上下文切换开销?

Profiler没有给我任何关于线程级别的见解。

平台信息

Android,在ARM Cortex-A8上运行

1 个答案:

答案 0 :(得分:0)

您没有在这些主题中展示您正在做的事情。容易假设的答案是当您添加新线程时,这些新线程不会减轻其他线程的执行负担,它们正在执行新工作,否则将无法执行。

在40秒的运行时间内,有16个线程,你不会注意到上下文切换的影响,除非你还要计算实际执行的工作单元,这些工作单元需要很少的时间。

相关问题