任务切割的目的,在于将应用程序里的计算工作,切割后指派至另一个处理器核心;让应用程序,能真正使用多核心的计算能力。这就是为什么多核心软件的设计,决定了多核心系统效能。上述的观念,就是「平行处理」。
从应用程序的层面,就要考虑多核心的设计。如何将一个计算工作切割出来,并指派至另一个处理器核心?方式就是使用multi-thread。以Linux操作系统为例,multi-thread程序设计使用一个称为pthread的链接库;因此,学习pthread程序设计,就是打好多核心软件开发的第一个功课。
Android操作系统同样是使用pthread链接库,虽然Android的pthread链接库,与Linux的pthread链接库「是二个2不同的实作版本」,但同样是依循POSIX的标准(pthread是POSIX thread的缩写),因此,有志进入多核心软件开发的工程师,可以先在Linux系统底下,学习Linux pthread程序设计。
此外,Android应用程序与框架层,采用Java程序语言撰写,并且采用面向对象的基础理论。目前所谈论的pthread程序设计,则是用C或C++撰写,我们将透过pthread所产生的thread称之为native thread。应用程序使用Java语言撰写,所产生的thread称为Java thread。Java thread本质上是一个对象,因此也称为Thread object。
应用程序与框架层的Thread object与更底层的Native thread关系为何?答案是决取于Java Virtual Machine的设计;JVM的Thread model设计,将会影响Java thread的行为,在多核心系统上,Thread model也会影响Java thread的效能。(作者:Jollen Chen)
(本文经
仕橙部落同意转载到CTimes科技网)