Task queues are used as a mechanism to distribute work across threads or machines. Celery communicates via messages, usually using a broker to mediate between clients and workers.