- How to compile: g++ -o test main.cpp  -lpthread -w

 - Example output:
producer thread 3042753344 puts data to position1.
producer thread 3042753344 puts data to position2.
producer thread 3042753344 puts data to position3.
producer thread 3042753344 puts data to position4.
producer thread 3042753344 puts data to position5.
producer thread 3042753344 puts data to position6.
producer thread 3042753344 puts data to position7.
producer thread 3042753344 puts data to position8.
producer thread 3042753344 puts data to position9.
producer thread 3042753344 puts data to position0.
    consumer thread 3051146048 consumes data at position 0. 1th consume
    consumer thread 3051146048 consumes data at position 1. 2th consume
    consumer thread 3051146048 consumes data at position 2. 3th consume
    consumer thread 3051146048 consumes data at position 3. 4th consume
    consumer thread 3051146048 consumes data at position 4. 5th consume
    consumer thread 3051146048 consumes data at position 5. 6th consume
    consumer thread 3051146048 consumes data at position 6. 7th consume
    consumer thread 3051146048 consumes data at position 7. 8th consume
    consumer thread 3051146048 consumes data at position 8. 9th consume
    consumer thread 3051146048 consumes data at position 9. 10th consume
producer thread 3042753344 puts data to position1.
producer thread 3042753344 puts data to position2.
producer thread 3042753344 puts data to position3.
producer thread 3042753344 puts data to position4.
producer thread 3042753344 puts data to position5.
producer thread 3042753344 puts data to position6.
producer thread 3042753344 puts data to position7.
producer thread 3042753344 puts data to position8.
producer thread 3042753344 puts data to position9.
producer thread 3042753344 puts data to position0.
    consumer thread 3051146048 consumes data at position 0. 11th consume
    consumer thread 3051146048 consumes data at position 1. 12th consume
    consumer thread 3051146048 consumes data at position 2. 13th consume
    consumer thread 3051146048 consumes data at position 3. 14th consume
    consumer thread 3051146048 consumes data at position 4. 15th consume
    consumer thread 3051146048 consumes data at position 5. 16th consume
    consumer thread 3051146048 consumes data at position 6. 17th consume
    consumer thread 3051146048 consumes data at position 7. 18th consume
    consumer thread 3051146048 consumes data at position 8. 19th consume
    consumer thread 3051146048 consumes data at position 9. 20th consume
producer thread 3042753344 puts data to position1.
producer thread 3042753344 puts data to position2.
producer thread 3042753344 puts data to position3.
producer thread 3042753344 puts data to position4.
producer thread 3042753344 puts data to position5.
producer thread 3042753344 puts data to position6.
producer thread 3042753344 puts data to position7.
producer thread 3042753344 puts data to position8.
producer thread 3042753344 puts data to position9.
producer thread 3059538752 puts data to position0.
    consumer thread 3051146048 consumes data at position 0. 21th consume
    consumer thread 3051146048 consumes data at position 1. 22th consume
    consumer thread 3051146048 consumes data at position 2. 23th consume
    consumer thread 3051146048 consumes data at position 3. 24th consume
    consumer thread 3051146048 consumes data at position 4. 25th consume
    consumer thread 3051146048 consumes data at position 5. 26th consume
    consumer thread 3051146048 consumes data at position 6. 27th consume
    consumer thread 3051146048 consumes data at position 7. 28th consume
    consumer thread 3051146048 consumes data at position 8. 29th consume
    consumer thread 3051146048 consumes data at position 9. 30th consume
producer thread 3059538752 puts data to position1.
producer thread 3059538752 puts data to position2.
producer thread 3059538752 puts data to position3.
producer thread 3059538752 puts data to position4.
producer thread 3059538752 puts data to position5.
producer thread 3059538752 puts data to position6.
producer thread 3059538752 puts data to position7.
producer thread 3059538752 puts data to position8.
producer thread 3059538752 puts data to position9.
    consumer thread 3051146048 consumes data at position 0. 31th consume
    consumer thread 3051146048 consumes data at position 1. 32th consume
    consumer thread 3051146048 consumes data at position 2. 33th consume
    consumer thread 3051146048 consumes data at position 3. 34th consume
    consumer thread 3051146048 consumes data at position 4. 35th consume
    consumer thread 3051146048 consumes data at position 5. 36th consume
    consumer thread 3051146048 consumes data at position 6. 37th consume
    consumer thread 3051146048 consumes data at position 7. 38th consume
producer thread 3059538752 puts data to position0.
producer thread 3059538752 puts data to position1.
producer thread 3059538752 puts data to position2.
producer thread 3059538752 puts data to position3.
producer thread 3059538752 puts data to position4.
producer thread 3059538752 puts data to position5.
producer thread 3059538752 puts data to position6.
producer thread 3059538752 puts data to position7.
producer thread 3042753344 puts data to position8.
    consumer thread 3051146048 consumes data at position 8. 39th consume
    consumer thread 3051146048 consumes data at position 9. 40th consume
    consumer thread 3051146048 consumes data at position 0. 41th consume
    consumer thread 3051146048 consumes data at position 1. 42th consume
    consumer thread 3051146048 consumes data at position 2. 43th consume
    consumer thread 3051146048 consumes data at position 3. 44th consume
    consumer thread 3051146048 consumes data at position 4. 45th consume
    consumer thread 3051146048 consumes data at position 5. 46th consume
    consumer thread 3051146048 consumes data at position 6. 47th consume
    consumer thread 3067931456 consumes data at position 7. 48th consume
producer thread 3042753344 puts data to position9.
producer thread 3042753344 puts data to position0.
producer thread 3042753344 puts data to position1.
producer thread 3042753344 puts data to position2.
producer thread 3042753344 puts data to position3.
producer thread 3042753344 puts data to position4.
producer thread 3042753344 puts data to position5.
producer thread 3042753344 puts data to position6.
producer thread 3042753344 puts data to position7.
    consumer thread 3067931456 consumes data at position 8. 49th consume
    consumer thread 3067931456 consumes data at position 9. 50th consume