【发布时间】:2009-08-19 15:34:48
【问题描述】:
关于 C/C++ 中线程的问题...
C++0x 语法
#include <thread>
void dummy() {}
int main(int, char*[]) {
std::thread x(dummy);
std::thread y(dummy);
...
return 0;
}
有多少线程?两个(x 和 y)还是三个(x、y 和 main)?我可以打电话给this_thread::yield()吗?在 main 中调用 this_thread::get_id() 会得到什么?
pthread 语法
#include <pthread.h>
void dummy() {}
int main(int, char*[]) {
pthread_t x, y;
pthread_create(&x, NULL, &dummy, NULL);
pthread_create(&y, NULL, &dummy, NULL);
...
return 0;
}
有多少线程?两个(x 和 y)还是三个(x、y 和 main)?我可以打电话给pthread_yield()吗?在 main 中调用 pthread_self() 可以获得什么?
增强语法
#include <boost/thread>
void dummy() {}
int main(int, char*[]) {
boost::thread x(dummy);
boost::thread y(dummy);
...
return 0;
}
有多少线程?两个(x 和 y)还是三个(x、y 和 main)?我可以打电话给boost::this_thread::yield()吗?在 main 中调用 boost::this_thread::get_id() 可以获得什么?
【问题讨论】:
-
在第二个例子中你写了 pthread_t x,t;稍后你使用 x,y;我猜是错字。
标签: c++ multithreading c++11 pthreads boost-thread