When a task forks a new thread, it pushes it onto the head of its own deque.
当一个任务划分一个新线程时,它将自己推到deque的头部。
In the event the thread's task queue is empty, it then tries to steal another task off the tail of another thread's deque.
当线程的任务队列为空,它将尝试从另一个线程的deque的尾部窃取另一个任务。
My classes were all about finding the best algorithm or discovering new data structures that behave like old ones (anyone remember implementing a deque?).