The qt docs define the thread safety as https://doc.qt.io/archives/qt-4.8/threads-reentrancy.html
A thread-safe function can be called simultaneously from multiple threads, even when the invocations use shared data, because all references to the shared data are serialized.
To be a thread safe function either the critical section must be locked using mutex or the function should access its own copy of data. Why does serialization guarantee thread safety ? How does serialization related to thread safety?