1

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

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 上运行

4

1 回答 1

0

您没有在这些线程中显示您在做什么。容易假设的答案是,当您添加新线程时,这些新线程并没有减轻其他线程的执行负担,它们正在执行原本不会执行的新工作。

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

于 2012-06-12T13:52:17.333 回答