首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

线程有关问题

2012-02-26 
线程问题请问一下高手,C++中怎么样定义一个自己的线程,如BCB中的TThread这样的线程可以使用它来定义,我想

线程问题
请问一下高手,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的同一封装。

不知道我理解的对不对

热点排行