I don't think such approach is good. Dedicating whole thread to one system (like sound in your example) won't scale much to more cores, and won't be very flexible. Once you'll start putting more components in separate threads it will start to get very complex to synchronize everything correctly.
I think better approach is to do some kind of task system. Where your work is split into smaller chunks and then scheduled to run on any threads. Create as many threads as you have cores, and you'll be sure to use max computing power. So this way anything can be run on any thread be it sound updates, particle simulation, physics updates, etc... Of course some synchronization will be needed, but because everything will be uniform in this task system I think it will be easier.
Here's more reading about this:
http://fabiensanglard.net/doom3_bfg/threading.php
http://bitsquid.blogspot.com/2010...management-practical-example.html
http://jrouwe.nl/kzsfthreading/
https://software.intel.com/en-us/...king-to-scale-game-engine-systems
http://www.gdcvault.com/play/1012...onsored-Task-based-Multithreading