# Support for multiple threads in TSE3

The TSE3 library provides support for multi-threaded applications and guards its internal data structures against concurrent access by more than one thread.

It is possible to disable this support by configuring the code with the `--without-mutex` configure flag.

The threading support is implemented in the `tse3/Mutex.h` header file.

Even if the multi-threading support is enabled (as per default) the library will not be thread-safe unless you supply a platform-specific implementation of a mutex (which is a data structure used to prevent concurrent access to critical sections of code). You do this by providing a subclass of the `TSE3::Impl::MutexImpl` class and providing it to the TSE3 library (using the `TSE3::Impl::Mutex` class).

The KDOC documentation contains clear details on how to do this (look at the MutexImpl and Mutex class. If you have built the TSE3 documentation (see here for details) then the following links will take you directly to the documentation:

- MutexImpl
- Mutex