Android(安卓)NDK C++中的多线程
16lz
2021-01-24
Android NDK C++中的多线程
前言
我们都知道Android是基于Linux内核的,而Linux是遵循POSIX线程标准的,POSIX线程库中有
一系列Pthreads API方便我们对Linux线程的操作。所以我们在Android中使用C/C++线程也就转到
了使用POSIX线程库。他们都在头文件“pthread.h”中。
函数相关
1、pthread_t:
用于声明一个线程对象如:pthread_t thread;
2、pthread_creat :
用于创建一个实际的线程如:pthread_create(&pthread,NULL,threadCallBack,NULL);其总共接收4个参数,第一
个参数为pthread_t对象,第二个参数为线程的一些属性我们一般传NULL就行,第三个参数为线程执行的函数( void* threadCallBack(void data) ),第四个参数是传递给线程的参数是void类型的既可以传任意类型,这里要注意c++语言对于数据类型要比c语言严禁很多。如果传递的不是void*,则需要强制的类型转换。
3、pthread_exit :
用于退出线程如:pthread_exit(&thread),参数也可以传NULL。注:线程回调函数最后必须调用此方法,不然APP
会退出(挂掉)。
演示代码
效果如下
#include #include #include #include "androidLog.h"using namespace std;pthread_t pthread;void* normalCallBack(void* data){ int i = (int) data; LOGI("create thread form c++ i = %d",i); pthread_exit(NULL);}extern "C"JNIEXPORT void JNICALLJava_com_example_administrator_ndkthread_ThreadDemo_thread(JNIEnv *env, jclass type) { pthread_create(&pthread, NULL, normalCallBack, (void *) 1);}
项目地址:https://gitee.com/yys0215/NDKPThread
更多相关文章
- C语言函数的递归(上)
- Visual Studio 跨平台开发实战(5) - Xamarin Android(安卓)多页
- 基于android的俯卧撑计数器
- 使用 kotlin 来进行 Android(安卓)开发(一)
- Android(安卓)Binder 通信机制学习(四)
- android之Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlit
- Android消息机制(Handler)详述
- Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式
- Android(安卓)开发:(八)数据适配器 Adapter 篇