concurrent programming grunder sammanfattning

Denna sammanfattning ger en översikt av grundläggande begrepp inom concurrent programming, inklusive trådar, synkronisering och konkurrensproblem, vilket är avgörande för att förstå moderna programmeringsparadigm.

Mighty68·72 flashcards·72 frågor
universitetcomputer_scienceprogramming
0
Kan
1 / 72
0
Övar
Framsida

Vad är en process?

Tryck för att vända
Baksida

En process är en exekveringsinstans av ett program. Den har eget minnesutrymme och resurser.

Tryck för att vända
Kan
Övar fortfarande

Quiz(72 frågor)

Fråga 1 av 72

1. Vad är syftet med synkronisering i flertrådad programmering?

Begrepp i det här studiesetet(72)

Trådar och processer(16)

Vad är en process?

En process är en exekveringsinstans av ett program. Den har eget minnesutrymme och resurser.

Vad är en tråd?

En tråd är en lättviktig enhet av exekvering som tillhör en process. Trådar delar minnesutrymme.

Skillnaden mellan trådar och processer?

Trådar delar minne och resurser, medan processer har separata minnesutrymmen. Trådar är snabbare att skapa.

Vad används trådar till?

Trådar används för att utföra flera uppgifter parallellt, vilket ökar programmens effektivitet.

Är påståendet sant eller falskt? "Trådar kan inte existera utan processer."

Sant. Trådar är alltid kopplade till en process, eftersom de är en del av den.

Fyll i: En process kan innehålla ______.

flera trådar.

Vad händer om en tråd kraschar?

En kraschad tråd kan påverka hela processen, men inte andra processer.

Exempel på användning av trådar.

- Webbservrar - Spel - Databashantering

Hur hanteras samtidig åtkomst till resurser?

Genom synkroniseringstekniker, som mutexar och semaforer.

Vad är en bakgrundstråd?

En tråd som körs i bakgrunden, utan att blockera huvudprogrammet.

Namnge en fördel med trådar.

Snabbare resursanvändning och ökad responsivitet.

Ge en anledning till varför processer är dyrare.

Processer kräver mer resurser, inklusive eget minnesutrymme och resurshantering.

Vad är en trådpool?

En trådpool är en samling förinstallerade trådar som kan återanvändas för att hantera arbetsuppgifter.

Är påståendet sant eller falskt? "Trådar har alltid sin egen stack."

Sant. Varje tråd har en separat stack för sina egna funktionsanrop.

Vad är syftet med att skapa flera trådar i ett program?

Att öka prestandan genom att utföra flera operationer samtidigt.

Skillnaden i minneshantering mellan trådar och processer?

Trådar delar minnesutrymme, processer har separata minnesutrymmen.

Synkronisering(20)

Vad är synkronisering?

Synkronisering är en teknik för att säkerställa att flera trådar eller processer kan köra och interagera med resurser utan att orsaka dataförlust eller inkonsekvenser.

Mutex

En mutex (mutual exclusion) är en låsstruktur som säkerställer att endast en tråd åt gången kan få tillgång till en viss resurs.

Vad gör en semafor?

En semafor är en synkroniseringsmekanism som används för att kontrollera åtkomst till en gemensam resurs genom att använda en räknare.

True or False: En mutex kan låsa flera resurser samtidigt.

False. En mutex låser endast en resurs åt gången för att förhindra dataförlust.

Vilken typ av semafor tillåter flera trådar?

En räknande semafor tillåter ett specificerat antal trådar att få tillgång till en resurs samtidigt.

Vad är en kritisk sektion?

En kritisk sektion är en del av koden där delad data kan ändras, och som därför måste skyddas från samtidiga åtkomster.

Skapa en mutex i C++.

Exempel: std::mutex m; m.lock(); // kritisk sektion m.unlock();

Skillnad mellan mutex och semafor?

Mutex låser en enskild resurs, medan semafor kan styra åtkomst till flera resurser baserat på ett räknesystem.

Vad är en barrier?

En barrier är en synkroniseringspunkt där trådar måste vänta tills alla trådar har nått punkten innan de kan fortsätta.

Fyll i blank: En ____ används för att signalera en tråd att en viss händelse har inträffat.

flagga

Vad är en condition variable?

En condition variable gör det möjligt för trådar att vänta på ett villkor att uppfyllas, vilket ofta används med mutexer för att hantera synkronisering.

True or False: Condition variables kräver en mutex.

True. Condition variables måste alltid användas tillsammans med mutexar för att säkerställa korrekt synkronisering.

Vad gör en spinlock?

En spinlock är en lättviktig låsning som gör att en tråd kan vänta aktivt (spin) tills låset blir tillgängligt.

Ge ett exempel på deadlock.

Två trådar låser resurs A och B, och väntar på att den andra ska släppa sin resurs, vilket leder till att ingen kan fortsätta.

Skillnad mellan dödlås och livsloop?

Dödlås är när två eller flera trådar blockerar varandra, medan livsloop är när en tråd körs oändligt utan att utföra något användbart arbete.

Vad är en lock-free datastruktur?

En lock-free datastruktur tillåter trådar att läsa och skriva utan att använda lås, vilket minskar risken för dödlås och blockerande operationer.

Hur används atomic operations?

Atomiska operationer görs som en enda, oavbruten åtgärd för att förhindra datainkonsekvenser vid samtidiga skrivningar.

Vad är fördelen med att använda lås?

Lås skyddar delade resurser och förhindrar datakorruption vid samtidiga skrivningar, vilket säkerställer att programmet fungerar korrekt.

Ge ett exempel på en race condition.

Två trådar ökar samma variabel utan korrekt synkronisering, vilket kan leda till oförutsägbara resultat.

Vad är en Read-Write Lock?

En Read-Write Lock möjliggör flera samtidiga läsningar men exklusiv skrivning. - Fördelar: - Ökar prestanda för läsintensiva operationer. - Förhindrar skrivkonflikter.

Konkurrensproblem(20)

Vad är ett dödläge?

Ett tillstånd där två eller flera trådar väntar på varandra för att frigöra resurser, vilket leder till att ingen av dem kan fortsätta.

Exempel på dödläge

- Två trådar låser resurser i omvänd ordning. - Tråd A låser Resurs 1. - Tråd B låser Resurs 2. - Ingen kan fortsätta.

Vad är livlöst tillstånd?

Ett tillstånd där en tråd är blockerad och kan inte fortsätta, men det finns möjlighet att få resurser.

Vad är en livscykel för trådar?

Faserna en tråd går igenom: skapande, körande, blockerad, avslutad.

Orsak till konkurrensproblem

När flera trådar försöker få tillgång till gemensamma resurser utan korrekt synkronisering.

Vad är en race condition?

Ett felaktigt tillstånd som uppstår när två eller flera trådar ändrar ett gemensamt datavärde samtidigt.

Fyll i luckan: Race condition uppstår när trådar __________.

'inte är korrekt synkroniserade'.

Vad är starvation?

Ett tillstånd där en tråd inte får tillgång till resurser på grund av att andra trådar ständigt prioriteras.

Skillnad mellan dödläge och starvation?

Dödläge: Trådar väntar på varandra. Starvation: Trådar får aldrig resurser.

Vad innebär prioriteringsinversion?

När en lågprioriterad tråd blockerar en högprioriterad tråd, vilket orsakar fördröjningar.

Exempel på ett konkurrensproblem

- Tråd A och Tråd B uppdaterar samma variabel. - Utan synkronisering kan det leda till inkonsekventa värden.

Vad är en mutex?

En mekanism för att låsa en resurs så att endast en tråd kan få åtkomst åt gången.

Vad är en semafor?

En synkroniseringsanordning som används för att kontrollera tillgången till resurser genom att använda räknare.

Vad är ett livlöst tillstånd?

Ett tillstånd där en tråd är blockerad och inte kan få resurser, men det finns potentiella vägar att återfå åtkomst.

Fyll i luckan: Ett __________ inträffar när en tråd blockerar en annan tråd från att köra.

'livlöst tillstånd'.

Vad är en barrier?

En synkroniseringsteknik som tvingar trådar att vänta tills alla trådar har nått en viss punkt.

Orsaken till livlöst tillstånd?

Trådar väntar på resurser som är låsta av andra trådar.

Vad är en condition variable?

En synkroniseringsmekanism som gör att trådar kan vänta på ett visst tillstånd innan de fortsätter.

Exempel på semafor-användning

- En producent-konsument problem där en semafor kontrollerar tillgången till en buffert.

Vad kan man göra för att undvika dödläge?

- Använda resursåtervinning. - Använda tidsgränser. - Implementera en ordningsregel för resurslåsning.

Verktyg och bibliotek(16)

Vad är Java Concurrency API?

Ett bibliotek i Java för att hantera trådar och synkronisering, vilket underlättar concurrent programming.

Python's threading modul: Syfte?

Ger en hög nivå av abstraktion för att arbeta med trådar och stödjer flera trådar i ett program.

Vad är OpenMP?

Ett API för C, C++ och Fortran som möjliggör parallell programmering via direktiv.

Ge exempel på C++ verktyg för concurrent programming.

C++11:s tråd-bibliotek och std::async för asynkron körning.

True or False: POSIX Threads är specifikt för Windows.

False. POSIX Threads (pthreads) är en standard för Unix-liknande system.

Skillnaden mellan thread pools och vanliga trådar?

Thread pools återanvänder trådar för att minska overhead, medan vanliga trådar skapas och avslutas för varje uppgift.

Vad är Futures i Java?

Ett sätt att representera resultatet av en asynkron operation, vilket möjliggör enklare hantering av trådar.

Vad gör .NET Task Parallel Library?

Förenklar parallell programmering genom att tillhandahålla en hög nivå av abstraktion för uppgifter.

Ge ett exempel på en synkroniserad datastruktur.

Java's ConcurrentHashMap är en trådsäker datastruktur för att hantera nyckel-värde-par.

Vad är MPI?

Message Passing Interface, ett protokoll för att utbyta meddelanden mellan processer i distribuerade system.

Fråga: Hur fungerar GIL i Python?

Global Interpreter Lock (GIL) tillåter endast en tråd att köra Python-byte-kod i taget, vilket begränsar parallellism.

Vad är Cilk?

Ett programmeringsspråk och bibliotek för C/C++ som stödjer parallell programmering via ett enkelt stil av kod.

True or False: Fork/Join Framework är för asynkron programmering.

True. Det används för att dela upp uppgifter och kombinera resultat i Java.

Vad är RxJava?

Ett bibliotek för att arbeta med asynkron programmering via reaktiva strömmar, stödjer observer-mönster.

Fill in the blank: Akka är ett __________ verktyg.

aktörsbaserat verktyg för att hantera samtidighet i distribuerade system.

Vad gör Java's Executor Framework?

Hantera trådar och uppgifter, vilket underlättar parallell exekvering och resursallokering.

Frågor i det här studiesetet(72)

1. Vad är syftet med synkronisering i flertrådad programmering?

A.Att förhindra datakorruption vid simultan åtkomst
B.Att öka hastigheten på programmet
C.Att minimera minnesanvändningen
D.Att förenkla koden

2. Vad beskriver bäst en process?

A.En exekveringsinstans av ett program med eget minnesutrymme.
B.En lättviktig enhet av exekvering inom en annan process.
C.En mekanism för att synkronisera trådar.
D.En typ av databasoperation.

3. Vad är ett dödläge?

A.Ett tillstånd där trådar blockerar varandra.
B.Ett tillstånd där trådar körs utan problem.
C.Ett tillstånd där trådar får tillgång till resurser.
D.Ett tillstånd där alla trådar avslutas.

4. Vad är syftet med Java Concurrency API?

A.Att hantera trådar och synkronisering.
B.Att öka hastigheten på kompilering.
C.Att skapa grafiska användargränssnitt.
D.Att optimera minnesanvändning.

5. Vilken av följande är INTE en mekanism för synkronisering?

A.Mutex
B.Semaphore
C.Barrier
D.Heap

6. Vilken av följande påståenden beskriver en tråd?

A.Det är en enhet av exekvering som kan köra parallellt med andra trådar.
B.Det är alltid isolerad från andra trådar.
C.Det kan existera utan en process.
D.Det kräver egen hårdvara.

7. Vad är en mutex?

A.En typ av tråd som körs parallellt.
B.En mekanism för att låsa resurser.
C.En synkroniseringsmetod för att dela data.
D.Ett problem som uppstår vid trådkonkurrens.

8. Vilken funktion har Python's threading modul?

A.Att skapa högpresterande grafiska applikationer.
B.Att ge en abstraktion för trådar.
C.Att optimera databashantering.
D.Att komprimera data.

9. Vad gör en semafor?

A.Kontrollerar åtkomst till resurser med en räknare
B.Låser en resurs för en tråd
C.Fungerar som en flagga för trådar
D.Skapar en kritisk sektion

10. Vad händer när en tråd kraschar?

A.Endast den kraschade tråden påverkas.
B.Hela processen kan påverkas negativt.
C.Ingen påverkan på processen.
D.Endast andra trådar i samma process påverkas.

11. Vilken av följande är INTE en orsak till dödläge?

A.Cirkulär väntan.
B.Överbelastning av resurser.
C.Oberäknelig resursanvändning.
D.Korrekt synkronisering.

12. Vilken typ av programmering stödjer OpenMP?

A.Sekventiell programmering.
B.Parallell programmering.
C.Asynkron programmering.
D.Objektorienterad programmering.

13. Vad är en kritisk sektion?

A.Del av koden som hanterar delad data
B.En typ av lås
C.En metod för att skapa trådar
D.En algoritm för minneshantering

14. Vad är en trådpool?

A.En samling trådar för återanvändning vid arbetsuppgifter.
B.En typ av process som körs i bakgrunden.
C.En mekanism för att hantera minnesutrymme.
D.En metod för att synkronisera trådar.

15. Vad är starvation?

A.En typ av dödläge.
B.När en tråd aldrig får resurser.
C.Ett tillstånd där trådar körs effektivt.
D.Ett tillstånd där trådar avslutas snabbt.

16. Vilket av följande är ett verktyg för C++ concurrent programming?

A.std::thread.
B.std::string.
C.std::vector.
D.std::map.

17. Hur fungerar en mutex?

A.Låser en resurs för en tråd i taget
B.Tillåter flera trådar att få tillgång samtidigt
C.Ger en tråd möjlighet att köra oavbrutet
D.Ökar hastigheten på kodexekvering

18. Skillnaden mellan trådar och processer är?

A.Trådar delar minnesutrymme medan processer har separata minnen.
B.Processer kan inte skapa trådar.
C.Trådar är alltid långsammare än processer.
D.Processer har alltid färre resurser än trådar.

19. Vad är en semafor?

A.En låsningsteknik.
B.En synkroniseringsanordning för resurstillgång.
C.En typ av tråd.
D.Ett tillstånd av livlöshet.

20. Är POSIX Threads specifikt för Windows?

A.Ja, det används endast i Windows.
B.Nej, det är en standard för Unix-liknande system.
C.Ja, men kan användas i Linux.
D.Nej, det finns ingen sådan standard.

21. Vilken typ av semafor tillåter flera samtidiga trådar?

A.Räknande semafor
B.Binär semafor
C.Mutex
D.Barrier

22. I vilket scenario används trådar mest effektivt?

A.I webbservrar för att hantera många samtidiga användare.
B.I bearbetning av stora datamängder i en enda tråd.
C.I applikationer utan användarinteraktion.
D.I operationer som kräver mycket minne.

23. Vilken av följande beskriver en race condition?

A.En kollision mellan trådar.
B.När trådar får tillgång till resurser.
C.Ett felaktigt tillstånd som orsakas av otillräcklig synkronisering.
D.En säker metod för datahantering.

24. Vad är skillnaden mellan thread pools och vanliga trådar?

A.Thread pools skapar nya trådar för varje uppgift.
B.Thread pools återanvänder trådar för att minska overhead.
C.Det finns ingen skillnad.
D.Thread pools används endast för databearbetning.

25. Vad händer vid en deadlock?

A.Trådar blockerar varandra och väntar på resurser
B.Programmet körs utan problem
C.Trådar släpps automatiskt
D.All minnesanvändning stoppas

26. Vilken är en korrekt beskrivning av synkronisering?

A.Det används för att hantera samtidig åtkomst till gemensamma resurser.
B.Det är en funktion för att öka exekveringshastigheten.
C.Det blockerar alltid alla trådar.
D.Det är ett sätt att optimera minnesanvändning.

27. Vad är en condition variable?

A.En typ av mutex.
B.En mekanism för att låsa resurser.
C.En synkroniseringsmetod för att vänta på ett tillstånd.
D.En typ av semafor.

28. Vad representerar Futures i Java?

A.Resultatet av en synkron operation.
B.Resultatet av en asynkron operation.
C.En typ av databasanslutning.
D.En metod för att stänga trådar.

29. Vad är en barrier?

A.En synkroniseringspunkt för trådar
B.En typ av lås
C.En datastruktur för att hantera trådar
D.En algoritm för att optimera kod

30. Vad är en bakgrundstråd?

A.En tråd som körs utan att blockera huvudsaklig exekvering.
B.En tråd som hanterar användargränssnittet.
C.En tråd som alltid körs med högsta prioritet.
D.En tråd som är osynlig för användaren.

31. Vad är en barrier?

A.En typ av dödläge.
B.En teknik för att synkronisera trådar.
C.En metod för resursallokering.
D.En typ av mutex.

32. Vad är syftet med .NET Task Parallel Library?

A.Att skapa användargränssnitt.
B.Att förenkla parallell programmering.
C.Att optimera nätverkskommunikation.
D.Att hantera databaser.

33. Vilken av följande beskriver en condition variable?

A.Möjliggör att trådar väntar på ett specifikt villkor
B.En typ av mutex
C.Används för att skapa trådar
D.Ökar hastigheten på programmet

34. Vilken av följande påståenden är sann?

A.Trådar har alltid sin egen stack.
B.Processer delar alltid sin stack med andra processer.
C.Trådar kan inte kommunicera med varandra.
D.En tråd kan existera utan en process.

35. Vilket av följande är ett exempel på ett konkurrensproblem?

A.Tråd A och Tråd B uppdaterar samma variabel utan synkronisering.
B.Tråd A väntar på en resurs.
C.Tråd B avslutas utan problem.
D.En tråd körs i bakgrunden.

36. Ge ett exempel på en synkroniserad datastruktur.

A.Java's ArrayList.
B.Java's ConcurrentHashMap.
C.Python's list.
D.C++'s vector.

37. Vad är en spinlock?

A.En lättviktig låsning som väntar aktivt
B.En typ av mutex
C.En algoritm för att optimera prestanda
D.En semafor som används för synkronisering

38. Vilken av följande är inte en fördel med att använda trådar?

A.Snabbare resursanvändning.
B.Ökad responsivitet.
C.Mindre minnesanvändning per tråd.
D.Ökad komplexitet i programmeringen.

39. Vad är ett livlöst tillstånd?

A.Ett tillstånd där en tråd är blockerad men kan få resurser.
B.Ett tillstånd där alla trådar avslutas.
C.Ett tillstånd där trådar körs effektivt.
D.Ett tillstånd av dödläge.

40. Vad står MPI för?

A.Minimal Programming Interface.
B.Message Passing Interface.
C.Multi Processor Interface.
D.Modular Programming Interface.

41. Vad är skillnaden mellan dödlås och livsloop?

A.Dödlås blockerar varandra, livsloop körs oändligt
B.Båda är samma sak
C.Dödlås är en typ av livsloop
D.Livsloop blockerar varandra

42. Vad är en nackdel med processer?

A.De kräver mer resurser och minnesutrymme.
B.De är alltid snabbare än trådar.
C.De kan inte använda trådar.
D.De kan inte exekveras parallellt.

43. Vad kan man göra för att undvika dödläge?

A.Öka antalet trådar.
B.Använda korrekt resursåtervinning.
C.Ignorera synkronisering.
D.Öka resursanvändningen.

44. Hur påverkar GIL i Python programmering?

A.Det tillåter flera trådar att köra samtidigt.
B.Det begränsar parallellism genom att tillåta endast en tråd att köra Python-byte-kod i taget.
C.Det har ingen effekt.
D.Det ökar hastigheten på programmet.

45. Vad är en lock-free datastruktur?

A.En datastruktur som inte använder lås för att hantera samtidiga åtkomster
B.En typ av mutex
C.En semafor med lås
D.En algoritm för att minska minnesanvändning

46. Vad är syftet med att skapa flera trådar i ett program?

A.För att öka prestandan genom samtidig exekvering.
B.För att förenkla processhantering.
C.För att minska behovet av minne.
D.För att undvika fel i programmet.

47. Vilken av följande beskriver skillnaden mellan dödläge och starvation?

A.Dödläge: Trådar väntar på varandra. Starvation: Trådar får aldrig resurser.
B.Dödläge: Trådar får resurser men hänger. Starvation: Trådar körs alltid.
C.Dödläge: En tråd blockerar en annan. Starvation: Trådar avslutas.
D.Dödläge: Trådar är avslutade. Starvation: Trådar väntar.

48. Vad är Cilk?

A.Ett API för Java.
B.Ett programmeringsspråk och bibliotek för parallell programmering.
C.En databaslösning.
D.Ett grafiskt gränssnitt.

49. Vad är en Read-Write Lock?

A.Möjliggör flera läsningar men exklusiv skrivning
B.Låser en resurs för alla operationer
C.En typ av mutex som används för skrivoperationer
D.En semafor för att hantera flera resurser

50. Vilken typ av minneshantering är typisk för trådar?

A.De delar minnesutrymme.
B.De har ingen minneshantering.
C.De har separata minnesutrymmen som processer.
D.De använder endast heap-minne.

51. Vad innebär prioriteringsinversion?

A.När högprioriterade trådar alltid blockeras.
B.När en lågprioriterad tråd blockerar en högprioriterad tråd.
C.När alla trådar körs med samma prioritet.
D.När trådar avslutas utan att blockeras.

52. Är Fork/Join Framework avsett för asynkron programmering?

A.Ja, det används för att dela upp uppgifter.
B.Nej, det är endast för synkron programmering.
C.Ja, men endast i Python.
D.Nej, det används för datastrukturer.

53. Vad är en race condition?

A.När flera trådar manipulerar samma data utan korrekt synkronisering
B.En typ av dödlås
C.En synkroniseringspunkt för trådar
D.En metod för att öka prestanda

54. Vilken av följande metoder används för att hantera synkronisering i trådar?

A.Mutexar och semaforer.
B.Variabler.
C.Databaser.
D.Funktioner.

55. Fyll i luckan: Race condition uppstår när trådar __________.

A.är korrekt synkroniserade.
B.väntar på resurser.
C.inte är korrekt synkroniserade.
D.använder mutexar.

56. Vad är RxJava?

A.Ett verktyg för databashantering.
B.Ett bibliotek för asynkron programmering via reaktiva strömmar.
C.Ett grafiskt verktyg.
D.Ett språk för webbutveckling.

57. Vilken av följande påståenden är SANT angående mutexar?

A.De kan endast låsa en resurs i taget
B.De kan hantera flera resurser samtidigt
C.De arbetar oberoende av trådar
D.De minskar prestandan i alla situationer

58. Vad innebär det att en tråd blockeras?

A.Den väntar på en resurs eller ett villkor.
B.Den fortsätter att exekvera utan några problem.
C.Den tar upp extra resurser.
D.Den avslutar sin exekvering.

59. Vilken av följande är en orsak till livlöst tillstånd?

A.Trådar som väntar på låsta resurser.
B.Trådar som avslutas snabbt.
C.Trådar som alltid får resurser.
D.Trådar som körs utan blockering.

60. Akka är ett __________ verktyg.

A.aktörsbaserat.
B.datastruktur.
C.kompilator.
D.grafer.

61. Vilken av följande situationer bör undvikas för att förhindra deadlock?

A.Trådar som låser resurser i olika ordning
B.Trådar som låser resurser i samma ordning
C.Användning av semaforer
D.Användning av mutexar

62. Vilket påstående beskriver bäst en trådpool?

A.En samling förinstallerade trådar som kan återanvändas för att hantera arbetsuppgifter.
B.En typ av process som inte kan skapa trådar.
C.En enhet som hanterar minneshantering för flera processer.
D.En mekanism för att optimera CPU-användning i en enda tråd.

63. Exempel på semafor-användning är?

A.En tråd som alltid får resurser.
B.En producent-konsument problem där semaforen kontrollerar tillgång.
C.En tråd som inte blockerar.
D.En uppgift som avslutas utan att vänta.

64. Vad gör Java's Executor Framework?

A.Hanterar uppgifter och trådar.
B.Optimera bildbehandling.
C.Skapa användargränssnitt.
D.Kompilera program.

65. Vad är en flagga i samband med trådar?

A.En signal om att en händelse har inträffat
B.En typ av mutex
C.En semi-dynamisk datastruktur
D.En algoritm för kodoptimering

66. Vad är orsak till konkurrensproblem?

A.Korrekt synkronisering.
B.Flera trådar försöker få åtkomst till gemensamma resurser.
C.Ökande resursanvändning.
D.Tidsgränser för trådar.

67. Hur används atomiska operationer i synkronisering?

A.För att garantera oavbrutna skrivningar för att förhindra inkonsekventa data
B.För att låsa resurser
C.För att optimera minnesanvändning
D.För att skapa trådar

68. Vilket tillstånd kan en tråd gå in i efter att ha varit blockerad?

A.Avslutad.
B.Körande.
C.Dödläge.
D.Livlöst tillstånd.

69. Vilket av följande är en fördel med att använda lås?

A.Skyddar delade resurser och förhindrar datakorruption
B.Ökar antalet trådar som kan köras
C.Förenklar kodstrukturen
D.Minskar behovet av minne

70. Vilket av följande beskriver korrekt en semafor?

A.En synkroniseringsanordning som kontrollerar tillgång till resurser med hjälp av räknare.
B.En mekanism för att låsa en resurs så att endast en tråd kan få åtkomst åt gången.
C.Ett tillstånd där trådar väntar på varandra för att frigöra resurser.
D.En metod för att förhindra livlöst tillstånd.

71. Vilken av följande beskriver korrekt en mutex?

A.En mutex tillåter endast en tråd åt gången att få tillgång till en resurs.
B.En mutex kan låsa flera resurser samtidigt.
C.En mutex står för 'multiple threads execution'.
D.En mutex används för att optimera minnesanvändning.

72. Vilket av följande påståenden är INTE sant om dödläge?

A.Det inträffar när två eller flera trådar väntar på varandra för att frigöra resurser.
B.Det kan leda till att programmet stannar helt.
C.Det är ett tillstånd där en tråd riskerar att bli blockerad men fortfarande kan fortsätta.
D.Det är ett vanligt problem i konkurrensprogrammering.

Relaterade studieset

Skapa ditt eget studieset

Ladda upp en PDF, klistra in dina anteckningar eller beskriv ett ämne – AI genererar flashcards, quiz och mer på några sekunder.