title: storm中的Bolt和Spout是否需要同步？
desc: 我们知道storm可以有多个workerprocess，每个worker可以有多个executorthread，每个executor同一时间只能执行一个task，每个task执行一个ComponentSpout or Bolt，那么，一个Component的nextTuple或者execute方法是否需要同步？（我一直认为不需要）
topic: 多线程
content: 不需要同步。不过你理解的 Storm 的组件跟进程线程之间的对应关系有点问题，正确的应该是 Worker -- 进程 executor -- 线程 task跟进程或者线程没有直接对应关系，task 曾经0.7以及以前版本对应到线程，现在task 只在 对 tuple 进行分组（Stream Grouping） 的时候有用，一个 executor如果执行三个 task1，2，3， 意思是说所有要发送给这三个 task 的 tuple 都要发给这个executor。而在这个 executor 里面只有一个 Bolt 对
answerer_tags: 软件攻城师傅