EMA C++ Performace Tools Guide : 4 Consumer Performance Tool : 4.2 Threading and Scaling
 
4.2 Threading and Scaling
The Enterprise Message API is designed to allow calls from multiple threads, such that applications can scale their work across multiple cores. Applications can leverage this feature by creating multiple threads to handle multiple connections through the Enterprise Message API.
Configure EmaCppConsPerf for multiple threads using the -threads command-line option. When multiple threads are configured, each thread opens its own connection to the provider. EmaCppConsPerf divides its list of items among the threads (you can use the command line option, -commonItemCount, to request the same type and number of items on all connections).
The main thread monitors the other threads and collects and reports statistics from them. Additionally, EmaCppConsPerf configures the Enterprise Message API to create an internal thread to dispatch received messages. You can set EmaCppConsPerf to not run the second thread inside the Enterprise Message API using -useUserDispatch command line option.