use atomic integer to replace synchronized primitive to avoid performance penalty
Merge pull request #65 from ywang19/master

use atomic integer to replace synchronized primitive to avoid performance penalty, and avoid number holes in next().