昨天和老婆逛街,看到三星刚出了一个四核的安卓手机。
回来就在想,安卓手机推出四核, 对appliction会有性能上的提升吗?
linux,JVM的线程是映射到内核进程上的, 内核进程由OS集中调度,对CPU结构透明,在多核的情况下,多个内核进程会被动态分配到不同的CPU核上运行。
因此看起来,JVM在多核CPU上是可以大大提升性能的。
但是,先稍等一步。传统的JVM的线程编程,很多情况下需要线程同步, 比如通过 notify,通过共享变量, A线程要等待B线程的结果。
在这种代码结构下,多核CPU的所谓并行化计算根本是不可能达到的。
安卓的内核是linux, 安卓的dalvik虚拟机和传统的JVM也不应该有太大的区别。因此,我觉得安卓下的内核运行和linux PC下应该类似。
要真的保证安卓下的application能充分利用多核芯片, 一定要满足:
1. application开发的时候考虑到了多核并行
2. 不过话说出来, 现在android开子线程都用AsyncTask, 对UI主线程非堵塞, 理论上只要按照这样的模式, 写出来的app肯定能有效利用多核