Operations on items are not atomic. One thread can partially write the data and the other thread might already try to access this bogus data. You could get a nice effect in a situation when there is a pointer in an object that should be pointing to some data but before the pointer gets initialized another thread reads it and tries to dereference it.
You may use a QReadWriteLock instead of a plain mutex but if you only have two threads then both these mechanisms will be equivalent.
Bookmarks