vendredi 24 juin 2016

Thread priority - 'unit test'

A very concise question: How do I prove with a simple test, that setting:

android.os.Process.setThreadPriority(int); 

actually works?

The reason I post this question is mainly generic, as I can't find a simple test that I can replicate.

Further reading:

It is important to me and my application specifically, as it captures audio, which must be the priority. The audio data is also written to a file as well as being analysed for its properties, which is of less importance - Therefore I don't require these tasks to be 'truly simultaneous'.

In my audio thread, I set:

Process.setThreadPriority(Process.THREAD_PRIORITY_URGENT_AUDIO);

I can simply test the above has 'applied' by checking before and after:

Process.getThreadPriority(Process.myTid());

However, my need for a test is due to the documentation, which states:

Standard priority of the most important audio threads. Applications can not normally change to this priority.

Despite the log output showing the priority changed to -19, my concern, raised by the wording in the documentation, is that the System may not allow a value of -19 for a normal application at the time of execution and it is possibly reserved for System applications only?

If the above is true, I wonder how I could simply prove what happens to this priority value - Is it defaulted to the maximum permitted, or could it be ignored completely?

In regards to the actual test itself, I've experimented with loops and pauses, but without success and I don't trust the results of the attempts I've made. I'm also aware that the behaviour is OS dependent, so perhaps I cannot replicate a stand-alone Java test of which I've failed to find any upvoted examples?

Hope someone can help. Thanks in advance.

Aucun commentaire:

Enregistrer un commentaire