Android NDK and pthread


http://stackoverflow.com/questions/11048260/does-android-support-thread


Does Android support pthreads?And why when i use -pthread option i see the linker error:

-----------------------------------------

As far as I could see in the docs you do not need to use "-pthread". Checkout following:
http://mobilepearls.com/labs/native-android-api/#pthreads


----------

POSIX threads (pthreads)

The android libc, bionic, provides built-in support for pthreads, so no additional linking (-lpthreads) is necessary. It does not implement full POSIX threads functionality and leaves out support for read/write locks, pthread_cancel(), process-shared mutexes and condition variables as well as other more advanced features. Read the bionic OVERVIEW.txt for more information.

TLS, thread-local storage, is limited to 59 pthread_key_t slots available to applications, lower than the posix minimum of 128.

----------


Info from NDK offical docs states (android-ndk-r8\docs\system\libc\OVERVIEW.html):

PThread implementation:

   Bionic's C library comes with its own pthread implementation bundled in.
   This is different from other historical C libraries which:
    - place it in an external library (-lpthread)
    - play linker tricks with weak symbols at dynamic link time

So keep in mind that Bionic includes directly pthread as opposed to standard way you are used to (with -lpthread).




posted @ 2016-05-27 09:27  张同光  阅读(159)  评论(0编辑  收藏  举报