En Java -program, der kun kan gøre én ting ad gangen har betydelige begrænsninger i kompleksiteten af de opgaver, som programmør kan bede den om at udføre . Hvis du vil tillade programmer til at udføre flere operationer på en gang, kan Java- programmører at skabe nye processer ved at instantiere tråde. På trods af deres anvendelighed og nødvendighed i komplekse applikationer , er trådene ikke uden begrænsninger. Tråde
Java programmører skaber tråde fra en klasse, der implementerer " Runnable " interface . Trådene fungerer som programmer inden for programmerne , fordi de skal indeholde "run ()" metoden, som opfører sig som den " public static void main ( )" i programmets vigtigste klasse. Programmøren starter en tråd ved at oprette en ny instans af objektet og derefter kalder sin "run "-metoden. Når trådene begynder at køre , kan de få adgang variabler og kalder metoder fra andre objekter.
Præstationsbegrænsninger
Hver tråd, et Java program opretter tilføjer en tilføjelse byrde på computerens processor . Hvis Java-program gyder flere processor intensive tråde , så den maskine, som programmet opererer , kan falde væsentligt . Dette reducerer programmets resultater . Udover performance tuning har hver processor et maksimalt antal programmer tråde , for hvilke det kan planlægge behandlingstid. Dette tal varierer fra system til system , og er tilgængelig i dens dokumentation.
Variable fejl
Når et program består af en enkelt tråd , de " public static void main () " metoden, dataintegritet af program- variable er ikke et problem . Når et program har flere tråde adgang til og ændre samme variabler , kan en variabel ændres ved en anden tråd . Ændringen sker mellem den tid , at den anden tråd tilgår variabels værdi , og den tid, det ændrer denne variabel . Når trådene udfører funktioner på variabler, der er afhængige af den variable oprindelige værdi, kan det føre til beskadigelse af data .
Locks
For at forhindre, at oplysninger korruption, Javas standard biblioteket omfatter objekter kaldet " låse. " Når en tråd adgang til en variabel med den hensigt at ændre det , kan tråden kalde en lås metode, der vil forhindre andre tråde få adgang til variabel indtil den aktuelle tråd er færdig med det . Efter tråden frigiver sin lås , kan den næste tråd låse variablen . Mens dette forhindrer data korruption, det sinker anvendelse ydeevne .