I have simple Activity
that calls AsyncTask
, so I print some id's regarding Proces
and Thread
:
From onCreate android.os.Process.myUid(): 10137
From onCreate android.os.Process.myPid(): 29776
From onCreate android.os.Process.myTid(): 29776
From onCreate Thread.currentThread().getId(): 1
/****************************************************************/
From Async doInBackground android.os.Process.myUid(): 10137
From Async doInBackground android.os.Process.myPid(): 29776
From Async doInBackground android.os.Process.myTid(): 30426
From Async doInBackground Thread.currentThread().getId(): 12556
Uid
is same because its app-specific sandbox- Similar with
Pid
: Each app is oneProcess
- 3rd line in
onCreate
same asPid
because it's theUIThread
and in Android OS as based on Linux we know that issue regardingProcess
is actuallyThread
etc... And in theAsync
theThreadId
is different becauseAsyncTask
runs on differentThread
rather then theUIThread
The thing I'm struggling to understand is Thread.currentThread().getId()
. What I expect is to get same id as Thread.currentThread().getId()
for the same execution environment. e.g. for onCreate
I want lines 3,4 to be same (29776), and for Async
I expect lines 3,4 to be the same (30426). What is going on here?
Thanks,