Make some alterations to the code and added gitignore
Fixed gitignore
Added sample file for result comparison
Now handling of the lock looks good - it's not holding the lock while consuming or while producing