A work queue separates task creation from task processing. Tasks can originate anywhere, wait in a channel, and then be retrieved by worker threads when those workers are ready. section 10.4.4
A channel-based queue provides the main moving parts:
- A sending end accepts multiple tasks, even when the receiver is temporarily busy. section 10.4.4
- A receiving end delivers tasks to worker threads through recv(). section 10.4.4
- Arc<Mutex<T>> can protect shared task or result vectors, but channels offer a simpler alternative. section 10.4.4
Rendering work with two threads
A render-hex program defines Work::Task and Work::Finished, creates an unbounded crossbeam channel, parses input into operations, and configures two worker threads to process queued work.



