fix the error. when run in ubuntu with go1.1, the hash result is wrong.
because the goroutine is unorder. now, use channel to share data block,
the performance is same as the goal, and the result is right.  And
refactor the code.