_thread.h 553 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef THREAD_H
  2. #define THREAD_H
  3. class Runnable
  4. {
  5. public:
  6. virtual ~Runnable() { }
  7. virtual void run() = 0;
  8. static void threadFunc(void *vpRunnable)
  9. {
  10. Runnable *runnable = (Runnable*)vpRunnable;
  11. runnable->run();
  12. }
  13. };
  14. class _Thread
  15. {
  16. public:
  17. typedef void (*ThreadFunc)(void*);
  18. static _Thread *create(ThreadFunc func, void *param);
  19. static _Thread *create(Runnable *runnable)
  20. {
  21. return create(Runnable::threadFunc, runnable);
  22. }
  23. virtual ~_Thread() { };
  24. virtual void run() = 0;
  25. };
  26. #endif // THREAD_H