En Java -program som kan bare gjøre én ting om gangen har betydelige begrensninger i kompleksiteten i de oppgavene som programmerer kan stille den til å utføre . Å tillate programmer å utføre flere operasjoner samtidig, kan Java- programmerere skape nye prosesser ved instantiating tråder. Til tross for deres nytte og nødvendighet i komplekse applikasjoner , trådene er ikke uten begrensninger. Tråder
Java programmerere lage tråder fra en klasse som implementerer " kjørbart " grensesnitt. Trådene fungerer som programmer innenfor programmer , fordi de må inkludere " run () "-metoden , som oppfører seg som " public static void main ( )" i programmets største klassen . Programmereren starter en tråd ved å opprette en ny forekomst av objektet, og deretter ringer sin " run "-metoden . Når trådene begynner å kjøre , kan de få tilgang til variabler og kalle metoder fra andre objekter.
Ytelsesbegrensninger
Hver tråd som et Java- program skaper legger et tillegg byrde på datamaskinens prosessor . Hvis et Java -program gyter flere prosessor intensive tråder , så maskinen som programmet opererer kan avta betraktelig. Dette reduserer programmets ytelse. I tillegg til ytelse tuning , har hver prosessor et maksimalt antall program tråder som det kan planlegge saksbehandlingstiden. Dette tallet varierer fra system til system , og er tilgjengelig i dokumentasjonen .
Variable feil
Når et program består av en enkelt tråd , den " public static void main ( ) "-metoden , er data integritet program variabler ikke et problem . Når et program har flere tråder tilgang til og endre de samme variablene , kan en variabel endres av en annen tråd . Endringen skjer mellom den tid som den andre tråden tilgang til variabelen verdi og tiden det endrer den variabelen. Når trådene utfører funksjoner på variabler som er avhengig av variabelens startverdi , kan dette føre til ødelagte data.
Låser
For å hindre at data korrupsjon , Javas standard bibliotek omfatter objekter kalt "låser ". Når en tråd aksesserer en variabel med den hensikt å modifisere den, kan tråden kalle en lås metode som vil hindre at andre tråder fra å få tilgang til den variable aktuelle tråden er gjort med det . Etter tråden utgivelser sin lås, kan den neste tråd låse variabel . Selv om dette hindrer data korrupsjon, bremser det ned søknad ytelse .