线程问题
请问一下高手,C++中怎么样定义一个自己的线程,如BCB中的TThread这样的线程可以使用它来定义,我想怎么样除用TThread这个现存的类来定义一个完全属于自己的线程的类
[解决办法]
你可用自己写一个类,用API CreateThread来建线程,用 SuspendThread / ResumeThread 来停止/运行线程
[解决办法]
最好的方法是使用系统的API,
如果自己写的话,优先级没有API高,并且还容易出错。
UINT StartThread(LPVOID pParam)
{
//线程处理代码
return0;
}
int main(int argc, char* argv[])
{
if(条件)
{
_beginthread(StartThread,0,NULL);
}
return 0;
}
以上只是个事例,你可以在需要的地方加入线程,但必须包含windows.h文件。
VC6。0 + WINXP
[解决办法]
CreateThread来建线程
[解决办法]
创建线程是依赖于操作系统的,比如:Windows下是CreateThread,Unix下是pthread。
C++的标准库是需要平台无关的,所以并没有包含线程管理的类和函数。
不过C++的线程管理库并不少,比如boost中就有。
[解决办法]
_beginthreadex、CreateThread、AfxBeginThread,推荐_beginthreadex 。
[解决办法]
Polarislee: GNU Pth 我也知道,纯用户态线程。。只是很怀疑楼主是否正确表达了他想表达的意思,呵呵。
Apache 是从多进程到多线程(Pthread),没有用自己的用户线程吧。
[解决办法]
ACE:ACE_Task
boost:boost::thread
[解决办法]
MFC的话
用AfxBeginThread
[解决办法]
线程属于系统级别的,语言是系统无关的。
语言所能够做的是封装系统API。
我理解的语言中含有线程相关都是一种封装,例如java中可以使用java提供的线程库,但是这仅仅是java在不同的系统中对不同系统相关API的同一封装。
不知道我理解的对不对