Using variable i instead fixed a make it easier to debug.
Transfer to multiple job queues frame work.

Multiple job queues brings following benefits:
1. avoid performance loss when many threads race for one lock.
2. enable complex job scheduling, making it possible that specific thread handle specific job.

Implement Two-Lock Concurrent Queue Algorithm.
Reference:
http://www.cs.rochester.edu/research/synchronization/pseudocode/queues.html
Update README