Synchronization Object similar to a semaphore with added functionality. Sprinkler enables you to externalize data from internal threads. In a high concurrency environment, there are many cases where one main thread needs to wait for one or more threads, and data needs to be shared among all the threads. For instance, you may want to externalize exceptions from the inner threads to the main thread.