Att säkerställa att multitrådade program är korrekta är svårt, på grund av potentialen för oväntade och icke-deterministiska interaktioner mellan trådar. Tidigare arbete tog itu med detta problem genom att ta fram verktyg för att upptäcka rasförhållanden, en situation där två trådar samtidigt får tillgång till samma datavariabel, och åtminstone en av åtkomsterna är en skrift. Det är dock varken nödvändigt eller tillräckligt att kontrollera avsaknaden av sådana villkor för samtidig tillgång till rasen för att säkerställa frånvaron av fel på grund av oväntade trådinteraktioner. Vi föreslår att det krävs en starkare icke-inblandningsegendom, nämligen atomäritet. Atomiska metoder kan antas utföra seriellt, utan interleaved steg av andra trådar. Atomiska metoder kan därför användas för sekventiella resonemang, vilket avsevärt förenklar både formella och informella resonemang om programkorrekthet. I detta dokument presenteras ett typsystem för att specificera och verifiera atomiciteten hos metoder i multitrådade Javaprogram. Det atomära typsystemet är en syntes av Liptons teori om reduktion och typsystem för rasdetektering. Vi har implementerat detta atomära typsystem för Java och använt det för att kontrollera en mängd olika vanliga Java biblioteksklasser. Typkontrollen avslöjade subtila atombrott i klasser som java.lang.String och java.lang.StringBuffer som orsakar krascher under vissa trådar interleaveings.
Till exempel Flanagan och Qadeer REF presenterade ett typsystem för att specificera och verifiera atomicitet av (enda gängade) metoder i multitrådade Java-program.
A type and effect system for atomicity
{'venue': "PLDI '03", 'journal': None, 'mag_field_of_study': ['Computer Science']}