You are here: Architecture and Design > Multi-Threading

## Multi-Threading

If you run the SDK on a machine with a multi-core processor or on a machine with multiple processors, the SDK creates multiple threads to run decoding operations more quickly. By default, the SDK uses the maximum number of threads available for optimal performance. The maximum number of threads equals the number of cores in your processor.

IMPORTANT: If you do not want to use the maximum number of threads, you must set the number of worker threads that you want to use. Use the `setMaxWorkerThreads()` function defined in the `MrSIDImageReader` class to set the number of threads. For more information, see the Reference Manual.

### Threaded Building Blocks

The MrSID SDK uses Intel Threaded Building Blocks (TBB) to manage threads. Programs that you create with the SDK must include the TBB library to take advantage of multi-threading. The TBB library is stored in the following location:

`<SDK Directory>\lib\tbb.dll`

To use additional TBB features in your program, download TBB header files and refer to the TBB documentation at the following URL:

https://www.threadingbuildingblocks.org/