Threads. Blocking queue using lock/unlock and conditios. Done.