If you are using FreeRTOS, you already have threading support. Do you want to ask the advantages of having more than one task/thread doing MQTT operations? If so, that depends on your application. If your application is only listening for incoming messages, one thread can be blocked waiting for incoming messages and handle them as they arrive. If you want to send messages while one thread is blocked waiting for incoming messages, you probably need another thread for that.