使用流发送消息的时候把什么用作同步锁最合适?

答案很简单,就是那个流!

例如使用OutputStream发送消息的时候,一条消息没法送完的时候流中不能发送其他消息,否则消息无法正常读取。这个时候为了保证发送过程的原子性,使用同步锁是必要的,而最能够精准匹配需求的锁就是用于发送数据的流——流在发送一条消息的时候不能被其他线程使用,只有等一条消息发送完成才能被其他线程使用。