作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
QRunnable 是所有 runnable 对象的基类,而 QThreadPool 类用于管理 QThreads 集合。
QRunnable 类是一个接口,用于表示一个任务或要执行的代码,需要重新实现 run() 函数。
QThreadPool 管理和循环使用单独的 QThread 对象,以帮助程序减少创建线程的成本。每个 Qt 应用程序都有一个全局 QThreadPool 对象,可以通过调用 globalInstance() 访问。
详细描述
QThreadPool 支持多次执行相同的 QRunnable,通过调用 QThreadPool::tryStart(this) 从 run() 函数内。如果启用了 autoDelete,当最后一个线程退出 run() 函数,QRunnable 将被删除。多次调用 QThreadPool::start() 使用相同的 QRunnable,当启用 autoDelete 时会创建一个竞争条件,不推荐使用。
一定时间未使用线程将会到期,默认到期超时是 30000 毫秒(30秒)。可以使用 setExpiryTimeout(