Android对Linux线程提供了C++封装Thread类,它是线程的基类。使用Thread类,需创建一个新类继承于Thread类,并实现threadLoop()方法,它即是线程函数。要启动线程,调用run()函数即可。
/*
* Android线程封装的基类
*/
class Thread : virtual public RefBase
{
public:
Thread(bool canCallJava = true);
virtual ~Thread();

/* 启动线程,即创建一个新的线程并执行threadLoop()虚函数 */
virtual status_t run( const char* name = 0,
int32_t priority = PRIORITY_DEFAULT,
size_t stack = 0);

/* 要求退出线程(这个函数是异步的) */
virtual void requestExit();

/* 可以重载此虚函数以进行初始化工作,但必须显示调用 */
virtual status_t readyToRun();

/* 要求线程退出(同步的) */
status_t requestExitAndWait();

protected:
/* 判断requestExit()是否被调用过 */
bool exitPending() const;

private:
/* 线程函数。若此函数返回true,当requestExit()没被调用过时会在次调用此函数;若返回false,
* 在该函数返回时线程将退出
*/
virtual bool threadLoop() = 0;

private:
Thread& operator=(const Thread&);
static int _threadLoop(void* user);
const bool mCanCallJava;
thread_id_t mThread;
Mutex mLock;
Condition mThreadExitedCondition;
status_t mStatus;
volatile bool mExitPending;
volatile bool mRunning;
sp<Thread> mHoldSelf;
#if HAVE_ANDROID_OS
int mTid;
#endif
};

更多相关文章

  1. [Android] 通过代码调用返回键
  2. Android(安卓)poweroff 流程
  3. Fragment中跨线程调用控件的问题
  4. Android(安卓)studio http请求获取数据失败或者获取不到数据原因
  5. 安卓基础学习(android studio)
  6. Android(安卓)RIL 架构学习总结 .
  7. Android(安卓)Property
  8. 终结篇:Android(安卓)startActivity原理分析(基于Android(安卓)8.
  9. android多线程断点续传

随机推荐

  1. Excel数据获取
  2. 青铜和黄金选手分别怎么玩转python列表?
  3. CSS Flexbox 可视化手册 [每日前端夜话(0
  4. 用Python生成自己专属的手机春节壁纸
  5. super(props) 真的那么重要吗?[每日前端夜
  6. 推荐一个基于 Node.js 的表单验证库 [每
  7. CSS粘性定位是怎样工作的 [每日前端夜话0
  8. python格式化输出:%s和format()用法比较
  9. 对比MySQL学习Pandas的groupby分组聚合
  10. 教你用Python拆分表格并发送邮件