multiple cuda + OpenGL thread, best way to implement?

I’m writing an application that has several Cuda thread (to process several streaming inputs) that should transfer their data to OpenGL for display (can be one or several windows).

I was thinking of creating several windows, one for each thread so that I can attach the Cuda context to the OpenGL one and leave the data on the device. The potential problem I see is that GUI should be updated from a single thread, is that true also for OpenGL or just for GUI toolkits?

What is the best way to achieve what I want? I’ve got a lot of experience with Cuda but very little with OpenGL so I’m looking for the potential pitfalls before I start …