.NET Framework提供每个工作线程 在线程pool.Giving应用自己 工作队列有助于避免中央瓶颈的不同部分本地任务队列(通过不访问全局队列)。
我认为这些队列是它来源于工作线程,而不是从一个普通线程的新任务。
问:
但为什么队列(每个工作线程)在LIFO方式运行的本地任务?公平在哪里? 较早排队的任务应该较早运行(FIFO)。
我错过了什么?
.NET Framework提供每个工作线程 在线程pool.Giving应用自己 工作队列有助于避免中央瓶颈的不同部分本地任务队列(通过不访问全局队列)。
我认为这些队列是它来源于工作线程,而不是从一个普通线程的新任务。
问:
但为什么队列(每个工作线程)在LIFO方式运行的本地任务?公平在哪里? 较早排队的任务应该较早运行(FIFO)。
我错过了什么?
刚刚排队的任务可能将其工作集的内存仍保留在CPU高速缓存中(例如,快速排序递归排队要排序的数组部分)。 LIFO促进缓存重用并降低公平性。但TPL无论如何不能保证公平,而且我看到很少有需要这样的应用程序。
任务班确实受到宇航员建筑师的掌握。这里没有什么特别的,你用ContinueWith()添加的子任务按顺序运行。 –