Moderne processors met meerdere cores kunnen profiteren van gelijktijdige Java-toepassingen . Een gelijktijdige applicatie is er een die gelijktijdig meerdere operaties uitvoert . Concurrency introduceert unieke uitdagingen die moeten worden aangepakt om problemen te vermijden . Een groot probleem treedt op wanneer twee draden van executie elke toegang dezelfde methode tegelijk . Een thread kunnen interfereren met elkaar en maken de gegevens onbetrouwbaar . Om dit probleem te controleren , kunt u gelijktijdige toegang tot een methode waarbij de synchronisatie functie van Java te voorkomen . Wat je Java Software Development Kit nodig met NetBeans Integrated Development Environment ( IDE ) Bundel Toon Meer Aanwijzingen Laad de NetBeans IDE 1 door te klikken op het programma-icoon . Wanneer het programma wordt geladen, ga naar " Nieuw /New Project" en selecteer " Java Application " uit de lijst aan de rechterzijde van het scherm . Een nieuwe broncode bestand verschijnt in de NetBeans teksteditor . De broncode bestand bevat een lege hoofdfunctie kopen van 2 Verklaar een statische variabele met de naam x door het schrijven van de volgende in de belangrijkste functie in de broncode : . Static int x = 0 ; < br > Goedkope 3 Maak een gesynchroniseerde methode door het toevoegen van de " gesynchroniseerd " keyword om de methode verklaring . Een gesynchroniseerde methode kan alleen worden geopend door een thread op een moment , waardoor het voorkomen van data inconsistenties . Op een methode genaamd " methodName " gesynchroniseerd verklaren , schrijf de volgende verklaring in de broncode bestand : openbare gesynchroniseerd methodName ( ) Increment 4 een geheel getal door het schrijven van de volgende verklaring binnen de accolades van de methode : terugkeren x + + ; 5 Roep de gesynchroniseerde methode . Om te begrijpen wat het synchroniseren volbrengt , eerste stel dat de methode is niet gesynchroniseerd . Als twee parallelle threads roept u de methode tegelijkertijd , zullen ze elk verhoog de variabele x . Omdat x begint bij 0 , zal het resultaat van een toename operatie x = 1 . Dit is een probleem omdat de werkwijze werd tweemaal genoemd , en derhalve x moet gelijk 2 . Omdat " methodName " wordt gesynchroniseerd , wordt alleen een van de twee parallelle draden de werkwijze voert tegelijk . Een thread zal " methodName , " increment x , en uitgang in te voeren. Hierdoor kan de tweede draad op " methodName " in te voeren en de tweede increment bewerking uit te voeren . Met de gesynchroniseerde trefwoord , twee gesprekken naar " methodName " resulteren in x gelijk is aan 2 . Een aanroep van de methode kan worden geschreven als volgt : methodName ( ) ;
|