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
};

转载请保留:http://hi.baidu.com/%B6%C5%B2%FD%B1%F2/


更多相关文章

  1. Android提权代码zergRush分析
  2. 【Android(安卓)界面效果43】Android(安卓)LayoutInflater的infl
  3. Android从零开始(十五)
  4. android设置中的Preferencescreen使用方法介绍与分析
  5. 【Android】支持https接口调用的简单证书校验
  6. Android(安卓)H5混合开发 JS调用原生方法
  7. ImageView设置图片的几种方式
  8. Android之碎片Fragment的生命周期
  9. 倒计时(计时器)的五种实现方式--android

随机推荐

  1. android新建工程R报错或者R cannot be re
  2. 看雪学院-浅入浅出Android安全 笔记
  3. Jenkins搭建Android自动打包二之设置渠道
  4. android下httpd 代理设置和webview代理设
  5. Android的多媒体框架OpenCore(PacketVide
  6. 2012:Android关键而危险的“升级”之年
  7. Android高手进阶教程(八)之----Android(
  8. Android程序开发初级教程
  9. android开发中handler的总结
  10. Android输入系统概述