Implement Producer Consumer pattern in three ways