Trådpool

Från Wikipedia
Ett exempel på en trådpool (gröna rutor) med väntande uppgifter (blå) och färdiga uppgifter (gul)

Trådpool (från engelskans thread pool) är ett designmönster[1] som består av ett antal trådar (m) som skapas för att utföra ett antal uppgifter samtidigt (n). Vanligtvis motsvarar m inte n; istället är antalet trådar inställt till de tillgängliga datorresurserna för att hantera uppgifterna parallellt (processorer, kärnor, minne) medan antalet uppgifter beror på problemet och kanske inte är känt i förväg.

Anledningar till att använda en trådpool, istället för att skapa en tråd per uppgift, är att förhindra overhead för tid och minne när trådar skapas,[2] samt för att undvika att få slut på resurser såsom öppnade filer eller nätverksanslutningar (där operativsystem allokerar ett begränsat antal för att köra program).[3] Ett vanligt sätt att distribuera uppgifterna till trådar (schemalägga uppgifterna att köras) är med hjälp av en synkroniserad , känd som en uppgiftskö (från engelskans task queue). Trådarna i poolen plockar uppgifter från kön, utför dem och sedan returnerar dem till kön för nästa uppgift.

Referenser[redigera | redigera wikitext]

Noter[redigera | redigera wikitext]

  1. ^ Garg, Rajat P. & Sharapov, Ilya Techniques for Optimizing Applications - High Performance Computing Prentice-Hall 2002, p. 394
  2. ^ Holub, Allen (2000). Taming Java Threads. Apress. sid. 209 
  3. ^ Makofske, David B.; Donahoo, Michael J.; Calvert, Kenneth L. (2004). TCP/IP Sockets in C#: Practical Guide for Programmers. Academic Press. sid. 112 

Se även[redigera | redigera wikitext]