Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den rekommenderade riktlinjen är att använda så få trådar som möjligt, vilket minimerar användningen av systemresurser. Detta förbättrar prestandan. Multitasking har resurskrav och potentiella konflikter att ta hänsyn till när du utformar ditt program. Resurskraven är följande:
- Systemet förbrukar minne för den kontextinformation som krävs av både processer och trådar. Därför begränsas antalet processer och trådar som kan skapas av tillgängligt minne.
- Att hålla reda på ett stort antal trådar förbrukar betydande processortid. Om det finns för många trådar kommer de flesta av dem inte att kunna göra betydande framsteg. Om de flesta av de aktuella trådarna är i en process schemaläggs trådar i andra processer mindre ofta.
Att ge delad åtkomst till resurser kan skapa konflikter. För att undvika dem måste du synkronisera åtkomsten till delade resurser. Detta gäller för systemresurser (till exempel kommunikationsportar), resurser som delas av flera processer (till exempel filhandtag) eller resurserna i en enda process (till exempel globala variabler) som används av flera trådar. Om åtkomsten inte synkroniseras korrekt (i samma eller i olika processer) kan det leda till problem som dödläge och konkurrensförhållanden. De synkroniseringsobjekt och funktioner som du kan använda för att samordna resursdelning mellan flera trådar. Mer information om synkronisering finns i Synkronisering av flera trådars körning. Om du minskar antalet trådar blir det enklare och effektivare att synkronisera resurser.
En bra design för ett flertrådat program är pipelineservern. I den här designen skapar du en tråd per processor och skapar köer med begäranden som programmet underhåller kontextinformationen för. En tråd skulle bearbeta alla begäranden i en kö innan begäranden bearbetas i nästa kö.