Is DCMTK safe for use in multi-threaded applications?
No, in general DCMTK is not thread-safe.
Starting with release 3.4.2, experimental multi-thread support has been added to the ofstd, dcmdata and dcmimgle libraries within DCMTK, i.e. everything that handles DICOM data in memory and in files is thread-safe as long as each object instance is only handled by one thread at a time. Only a few globals (in particular the DICOM data dictionary) are safe for use by multiple threads in parallel, based on read-write locks. Multi-thread support requires that either the Posix, Solaris or Win32 thread API is available.
Other DCMTK libraries are still unsafe for use in multi-threaded applications, in particular the dcmnet library that implements the DICOM network protocol is not reentrant.