在qt中使用多线程除了使用QThread类之外,还有就是使用QtConcurrent框架和QRunable类(学java的都知道,在qt中的用法也和java一样)。
使用QtConcurrent和QRunable都会和全局线程池一起使用。
QtConcurrent和QRunable只是适用于多项的,而且各项之间的独立性很强。
QtConcurrent::run()函数比较简单。将你要处理的项放进一个函数中,把它传给run()函数就行。
这样使用
第一个是函数指针,下面是参数。
java中多线程有个Runable接口,类实现这个接口就行,而C++没有接口,所以使用QRunable需要继承它,重写run函数,在其中实现你所要做的操作。
QRunable一般也与全局线程池一起使用。
QThreadPool::globalInstance()->start(QRunable子类);//跟java是不是很像啊