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

更多相关文章

  1. C语言函数的递归(上)
  2. Visual Studio 跨平台开发实战(5) - Xamarin Android(安卓)多页
  3. 基于android的俯卧撑计数器
  4. 使用 kotlin 来进行 Android(安卓)开发(一)
  5. Android(安卓)Binder 通信机制学习(四)
  6. android之Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlit
  7. Android消息机制(Handler)详述
  8. Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式
  9. Android(安卓)开发:(八)数据适配器 Adapter 篇

随机推荐

  1. HttpUrlConnect 响应为空的问题分析
  2. Android(安卓)聊天界面对话
  3. Android璧勬簮鏂囦欢 - 浣跨敤璧勬簮瀛樺
  4. Android电源管理
  5. android SQLite数据库使用实例
  6. Google Android 文档笔记-Training-Getti
  7. Android基础类之BaseAdapter
  8. 一、mono for android学习:什么是mono for
  9. Android弹球小游戏
  10. Android之SurfaceView、Camera