看你的具体“可以与否”的标准到底是什么。
如果是能跑,不崩,数据不重不漏,那不加也是完全可以的。
但如果需要确定状态,包括某段数据完整的在某个线程内收到之类的,要么加锁,要么设计一个完善的状态机去跑。