4

一个非常基本的问题。该文档提到所有方法QNetworkAccessManager都是可重入的。如果是这样,在没有锁的情况下执行get()方法是否合法?QRunnable我的代码看起来像这样:

class MyClass: public QRunnable
{
    void run()
    {
        ...
        QNetworkAccessManager nam;
        QNetworkReply* reply =  name.get(request)    // No Read-write lock.
        ...
    }
};
4

2 回答 2

3

Qt 文档

[...]如果一个类的成员函数可以[同时]从多个线程安全地调用,只要每个线程使用该类的不同实例,则称该类是可重入的。

由于您每次都使用不同的实例(您在 中的堆栈上创建的实例run()),因此您是安全的。

于 2011-05-06T19:15:04.703 回答
0

作为对此的附注,如果您只是希望 GET 请求是异步的,QNetworkAccessManager那么它已经是异步的(在文档中这么说)。

于 2011-05-07T22:41:00.893 回答