本文整理汇总了C++中IThread::start方法的典型用法代码示例。如果您正苦于以下问题:C++ IThread::start方法的具体用法?C++ IThread::start怎么用?C++ IThread::start使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IThread
的用法示例。
在下文中一共展示了IThread::start方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testThreadsRunningAndTerminating
void testThreadsRunningAndTerminating() {
// ONE stopped, TWO stopped
IThread *one = new ThreadSimple();
IThread *two = new ThreadSimple();
assert(one->getId() == 0);
assert(!one->isActive());
assert(two->getId() == 0);
assert(!two->isActive());
assert(ThreadHolder::getActiveThreads() == 0);
// ONE started, TWO started
one->start();
two->start();
assert(one->getId() != 0);
assert(one->isActive());
assert(two->getId() != 0);
assert(two->isActive());
assert(ThreadHolder::getActiveThreads() == 2);
Sleep(USUAL_DELAY);
// ONE stopped, TWO started
one->terminate();
assert(one->getId() == 0);
assert(!one->isActive());
assert(two->getId() != 0);
assert(two->isActive());
assert(ThreadHolder::getActiveThreads() == 1);
Sleep(USUAL_DELAY);
// ONE started, TWO started
one->start();
assert(one->getId() != 0);
assert(one->isActive());
assert(two->getId() != 0);
assert(two->isActive());
assert(ThreadHolder::getActiveThreads() == 2);
Sleep(USUAL_DELAY);
// ONE stopped, TWO stopped
one->terminate();
two->terminate();
assert(one->getId() == 0);
assert(!one->isActive());
assert(two->getId() == 0);
assert(!two->isActive());
assert(ThreadHolder::getActiveThreads() == 0);
delete one;
delete two;
}
示例2: run
TEST(IThread, Test1) {
class ThreadHandle: public IThread {
public:
ThreadHandle():num(1) {}
virtual ~ThreadHandle() {}
private:
public:
virtual void run() {
ASSERT_EQ(num, 1u);
num = 2;
}
public:
size_t num;
};
{
ThreadHandle thr;
thr.start();
thr.join();
ASSERT_EQ(thr.num, 2u);
}
{
IThread* ptr = new ThreadHandle();
ptr->start();
ptr->join();
delete ptr;
}
}
示例3: startStatThread
void startStatThread()
{
if(startStat)
{
curl_global_init(CURL_GLOBAL_ALL);
//nlinfo("startStatThread");
CStatThread *statThread = new CStatThread();
IThread *thread = IThread::create (statThread);
nlassert (thread != NULL);
thread->start ();
}
}
示例4: startWebigNotificationThread
void startWebigNotificationThread()
{
static bool startedWebigNotificationThread = false;
if(!startedWebigNotificationThread)
{
curl_global_init(CURL_GLOBAL_ALL);
//nlinfo("startStatThread");
CWebigNotificationThread *webigThread = new CWebigNotificationThread();
IThread *thread = IThread::create (webigThread);
nlassert (thread != NULL);
thread->start ();
startedWebigNotificationThread = true;
}
}