Yes, you can have a separate thread for each device and do your transfers. This approach will scale to as many devices you want. It will also be easy to add >2 devices and it will prevent any one device from locking up transfers on other devices.
You can alternatively go for a simple run loop by polling all devices. It is very simple to code but can introduce a lot of delays between samples of different devices. And one failed device can hold up every other devices in your loop.