• 4811阅读
  • 6回复

请问一个关于线程的问题 [复制链接]

上一主题 下一主题
离线wangbenqq
 

只看楼主 倒序阅读 楼主  发表于: 2008-04-29
— 本帖被 XChinux 执行加亮操作(2008-04-29) —
小弟对线程不是很了解。
现在我写了一个程序,速度特别慢,而且是几个循环可以同时运行的那种。

我可不可以引入线程来做呢?
对于好多的循环,我要怎么来用线程呢?是把每个循环放到一个线程里面么?

我对线程不了解,请高手指点一下,有了方向我好按照这个方向学习。

QT文档中的那三个例子对我没太多用处,所以清高手指点一二!
离线XChinux

只看该作者 1楼 发表于: 2008-04-29
从QThread派生一个类,实现纯虚函数void run()即可。
比如:
class MyThread : public QThread
{
public:
    void run();
};

void MyThread::run()
{
    // 在这个函数里实现自己的应用。此函数执行完毕,则线程停止运行。
    exec();      // 如果要进入Qt的消息循环,则调用exec()方法,类似于QApplication的exec()方法。
}

MyThread mythread;
mythread.start();  // 启动线程,此时开始执行run()函数体内的内容;直到run()返回,则线程运行结束。
mythread.quit();    // 此调用退出线程消息循环,也就是说让exec()函数结束并返回。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线lzian
只看该作者 2楼 发表于: 2008-04-29
你先研究多线程算法吧,以及互斥量,
知道你的算法怎么用多线程设计后,再用Qt编程
离线wangbenqq

只看该作者 3楼 发表于: 2008-04-29
哦 ,谢谢了
我先看看LINUX下的多线程的编程,先熟悉熟悉,再在QT上用
谢谢版主,和楼上的同学啦!
离线wangbenqq

只看该作者 4楼 发表于: 2008-04-30
想请教一下:我在线程里面添加的函数中,我发现好像不能使用QFile类,我调试的时候发现我的file是一个incomplete type请问这是为什么呢??
是在线程中不能使用QFile类么?
请教阿 !!!!!!!!!!!
离线lzian
只看该作者 5楼 发表于: 2008-04-30
你有没有添加相关的头文件?
有没有class QFile;
离线carbuncle
只看该作者 6楼 发表于: 2008-04-30
可以独立运行的话,你可以看看OpenMP,感觉用起来蛮方便的
快速回复
限100 字节
 
上一个 下一个