60 lines
1.3 KiB
C++
60 lines
1.3 KiB
C++
|
#include "hthread.h"
|
||
|
#include "htime.h"
|
||
|
|
||
|
HTHREAD_ROUTINE(test_thread1) {
|
||
|
int cnt = 10;
|
||
|
while (cnt-- > 0) {
|
||
|
printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms());
|
||
|
hv_msleep(100);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
class TestThread2 : public HThread {
|
||
|
protected:
|
||
|
virtual void run() {
|
||
|
int cnt = 10;
|
||
|
while (cnt-- > 0) {
|
||
|
printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms());
|
||
|
hv_msleep(100);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
class TestThread3 : public HThread {
|
||
|
protected:
|
||
|
virtual bool doPrepare() {
|
||
|
printf("doPrepare\n");
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
virtual void doTask() {
|
||
|
printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms());
|
||
|
}
|
||
|
|
||
|
virtual bool doFinish() {
|
||
|
printf("doFinish\n");
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
int main() {
|
||
|
printf("c-style hthread_create\n");
|
||
|
hthread_t thread1 = hthread_create(test_thread1, NULL);
|
||
|
hthread_join(thread1);
|
||
|
|
||
|
printf("cpp-style override HThread::run\n");
|
||
|
TestThread2 thread2;
|
||
|
thread2.start();
|
||
|
thread2.stop();
|
||
|
|
||
|
printf("cpp-style override HThread::doTask\n");
|
||
|
TestThread3 thread3;
|
||
|
thread3.setSleepPolicy(HThread::SLEEP_UNTIL, 100);
|
||
|
thread3.start();
|
||
|
hv_sleep(1);
|
||
|
thread3.stop();
|
||
|
|
||
|
return 0;
|
||
|
}
|