• 7

A PHP Error was encountered

Severity: Notice

Message: Undefined index: userid

Filename: views/question.php

Line Number: 191


File: /home/prodcxja/public_html/questions/application/views/question.php
Line: 191
Function: _error_handler

File: /home/prodcxja/public_html/questions/application/controllers/Questions.php
Line: 433
Function: view

File: /home/prodcxja/public_html/questions/index.php
Line: 315
Function: require_once

Does single thread application use all the 4 core in a Quad-core phone. I searched this a lot and found some articles that says yes and some saying no. some articles even say the android OS doesn't utilize the 4 core.

Is android capable of using all 4 cores in an Quad core processor?

Does single thread application utilize multi core?

      • 2
    • I put MultiCore.java.txt inside a trivial app, ran it under systrace, and posted the results on bigflake.com/systrace . You can clearly see the point where the Nexus 4 shifts the work to the 3rd and 4th cores. You can also see that there's a lot going on in the system other than the app, so even a "single-threaded" app can benefit from a multi-core device.
      • 1
    • bill gates asked a question and steve jobs edited this :) Sir Dennis Ritchie will answer this :)
      • 2
    • While not necessarily relevant, the question is somewhat mistaken: all Android apps necessarily have multiple threads. Even in the trivial case where a novice developer may do something with no awareness of threading, there are still a number of threads created in the act of setting up an application process, and they do end up utilized.

The answer is YES.

Android is basically built upon Linux kernel which does utilize mulit-core. As far as single-threaded-application is concerned, remember that a thread can not be executed in-parts on different cores simultaneously. So although your single-thread can be executed by different cores at different point in times, it can not be sub-divided and executed by different cores at the same time.

Having said that, please be aware that chipset manufacturers like Qualcomm are developing intelligent processors capable of sub-dividing your single-threaded app code (if and only if there are mutually exclusive parts) into multiple threads and have it run on different cores. Here again, the basic principle remains same - in order to utilize multi-core, the single thread was sub-divided into multiple threads.

To get the most out of your multi-core chip, you would rather create a multi-threaded app, with maximum possible asynchronous threads, so as to have optimum utilization of maximum number of cores. Hope this clears.


This also translates to - An app that does not make use of multiple asynchronous threads (or any other parallelism construct) will NOT use more than one core.

  • 20
Reply Report
      • 2
    • You didn't answer the question. An app that does not make use of multiple threads (or any other construct that allows parallelism) will NOT use more than one core.
      • 1
    • Hi Wes, I believe I did bring that point forth in last para of my answer. If only it needed para-phrasing, I've done that now. Thanks!
      • 2
    • -1 You're wrong. Single threaded workloads do not utilize more than one core. The web browsers are in this category, that means one core per tab, max. The answer is NO.
    • Hi Rok, the web browsers use separate process (not core per se) per tab. What I intended to say in para-2 is: If your single threaded application code has parts that are mutually exclusive then the new intelligent processors are capable of sub-dividing this otherwise single-threaded-code into multiple-(native)-threads and then run them on multiple cores. If only it needed para-phrasing, I've done that now. Thanks! More on parallelism here: developer.qualcomm.com/blog/… and msdn.microsoft.com/en-us/magazine/cc163340.aspx

On a quad core CPU based mobile device, the operating system can dynamically allocate workloads to the appropriate CPU core based on current CPU loads and task/activity priority. For example, if two CPU cores are busy processing long tasks such as Android application updates, file compression, and media processing the OS can immediately allocate latency sensitive tasks like touch inputs to the available third or fourth core to deliver faster responsiveness. When there are multiple tasks running at the same time, queued up request from these tasks can be serviced faster when there are multiple cores available to service these requests.

The Android operating system evolved from Linux, and therefore has native support for multitasking and multi-threading. Recent releases of Android 2.3 and Android 3.0/3.1/3.2 have added several features that improve the operating system’s ability to leverage the processing power of multi-core CPUs. Mobile browsers such as Firefox and Webkit are based on their desktop counterparts and therefore natively include support for multi-threading. The new browser included with Android 3.0 supports not only multi-threading, but also tabbed browsing. These browsers are able to utilize the increased processing power offered by multi-core CPUs to deliver a faster and better Web browsing experience.

Following Images will describe more :

This figure shows the utilization of each core of a quad core CPU system while browsing the popular New York Times Website. From the figure it is seen that the browser uses all four cores of the quad core CPU, and this parallel processing results in a Web browsing experience that is much faster than 6 on a dual core CPU-based mobile device. Quad Core CPU also deliver higher performance for browsers that support tabbed browsing.

CPU Utilization

Below figure shows the CPU utilization across the four CPU cores when multiple tabs are opened in a Web browser. In fact, tabbed browsing uses significant CPU processing and as seen in the figure, may even saturate all four cores of a quad core CPU.

Tabbed Browsing

Reason why Android OS should utilize all cores : (As I'm Android Developer So reason is related to Android Developer point of view)

Due to rapid growth in mobile gaming, developers are porting popular PC and console game engines to the mobile environment. These game engines were originally developed for multicore desktop PC platforms, and therefore will leverage the multi-core CPUs in mobile processors to deliver immediate benefits for mobile gamers. Quad core CPUs provide significant processing power for game developers and will enable developers to include advanced physics effects, artificial intelligence, collision detection/avoidance, virtual texturing, better network playability, and more. Quad core CPUs and variable SMP technology will enable mobile devices to further push the performance envelope, and allow application and game developers to deliver new mobile experiences, all while extending battery life for the most popular use cases.

As mobile games increase in complexity and visual richness, the corresponding file sizes of downloadable game content have also grown tremendously. Often, the game file size is so big that the time taken to download the game exceeds the fifteen minute refund time provided after a purchase for users to claim a refund if they don’t like the game. This is not only creating buyer frustration, but also is demotivating buyers from purchasing advanced games that require large file downloads.

Real-time dynamic texture generation techniques allows game developers to code games such that textures required in the game are created in real-time based on the narrative and state of the game. Since the textures are generated on the fly, they do not have to be provided at the time of purchase. Using this technique, game developers can reduce game file sizes by several orders of magnitude. Have a look on following scene variation in games with 4 core CPU.

Game Scene Variation

  • 10
Reply Report

Yes. Android 3.0 is the first version of the platform designed to run on either single or multicore processor architectures.

Even a single-threaded application can benefit from parallel processing on different cores.

For example, if your application uses a media server, then the media processing and your UI rendering application logic can run on different cores at the same time. Also, the garbage collector can run on a different core.

Check the link's below for more details



Say your using graphics. To render the same your app can use multi cores. You can check the same at the link below.

https://youtu.be/vQZFaec9NpA?t=459 (Graphics and performance)


Check this pdf. Scroll down to slide 22. Might be useful


  • 7
Reply Report