produce / comsume thread module