I don't believe any of this synchronization is going to be required for UDP — I am pretty sure you can do multiple sends on a UDP socket at once from different threads and the OS handles it for you.