Your explanation is a little confusing. I think you use the word thread
where you mean to use loops or something. As a matter of fact: if you
are using a reference to get the data out of your subvi, you are
actually using the user interface thread. That is not a good idea and
will definitely slow down performance. references into subvi's are a
very cool feature, but don't use it for data intensive procedures.
BTW. if you have 3 independent loops in your code, it is definitely
possible that they will run in differnt threads, but Labview does that
all automatically.
In the past I noticed great CPU load issues when trying to read DAQ
samples when they were not read by the hardware yet (software running
ahead of the hardware). I suggest you have your code monitor
the hardware FIFO buffer before you read the data into
Labviiew. It is also possible that you get performance issues
when you have no waits in a certian loop, causing it to run as fast a
CPU-possible