Jak zrobić by if + set (1 linia w ciele if) stało się atomowe?

AtomicInteger counter = new AtomicInteger();

if (counter.increaseAndGet() >= 10) {
counter.set(0);
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mistyk-gehenny: jak do czegoś nie ma instrukcji to stosuje się CAS https://pl.wikipedia.org/wiki/Compare-and-swap . To działa tak, że pobierasz wartość, coś z nią robisz a następnie używasz specialnej instrukcji CAS (na poziomie procesora), która ustawia nową wartość, jeśli teraźniejsza wartość jest równa tej pobranej na początku. Jak nie są równe, to zaczynasz od początku. Czyli w skrócie to jest taki set, które sprawdza, czy podczas obliczania nowej wartości ktoś inny nie
  • Odpowiedz
@Farezowsky: Oficjalna dokumentacja jest bardzo dobra, IMO nawet lepsza niż filmik bo można kopiować kod. Mają też przykłady aplikacji dla każdego z modułów w repo.
Patrz też baeldunga, ma sporo przykładów.
  • Odpowiedz
co będzie szybsze?
var counter = new AtomicInteger();

if (counter.increamentAndGet() >= 10) {
counter.set(0);
run();

co szybsze

  • wieksze/rowne 52.8% (19)
  • modulo 47.2% (17)

Oddanych głosów: 36

  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Fiber:

Dlaczego Java jest hejtowana?


Może nie hejtowana, ale lubię żartować, że to gorszy C#, bardziej chodzi o ładniejsze(?) rozwiązania w C# względem Javy, C# wyprzedził też Javę jeśli chodzi o implementacje nowych rzeczy do języka, a sam on jest również wieloplatformowy co wcześniej było argumentem "za" javą i "przeciw" C#. Poza tym to bardzo podobne języki, po prostu "styl" jednego bardziej przypada mi do gustu, ale nie uważam, że
  • Odpowiedz
Mireczki z #java i #mysql - pomocy xD. Java tworzy mi komendę i chce ją wykonać na bazie mysql. Wszystko się łączy zajebiście, tylko problem jest taki, że wywołując komendę mam error "java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO zzzz VALUES('28', '1'),('1', '1'),('2', '1'),('29', '2'),('1', '2'),' at
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Przeprowadzka Developera Do Innego Kraju – Czy To Takie Trudne?

▶️ Z pewnością niełatwe! Zwłaszcza, że każdy z nas ma inną sytuacje i rzeczy które bierze pod uwagę!
▶️ Jeśli chcesz zobaczyć na co zwracałem uwagę, oraz co motywowało mnie do podjęcia niełatwej decyzji to koniecznie zobacz mój ostatni materiał vlogowy.
▶️ Opowiadam również o tym dlaczego nie warto się bać, oraz co zrobić, aby strach nie blokował nas przy podejmowaniu decyzji.
▶️
SoftBull - Przeprowadzka Developera Do Innego Kraju – Czy To Takie Trudne? 

▶️ Z p...
  • 64
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

skoro skasowałeś wpis, to przynajmniej niech odpowiedzi odnośnie https://www.online-java.com/Cp9UjKiY4e trafią do społeczności:
- nie ma co wymyślać koła na nowo, do parsowania jsona jest mnóstwo bibliotek z Jacksonem i Gsonem na czele
- niby to tylko projekt na studia (pewnie po connection string można by znaleźć dokładnie jaki to przedmiot XD), ale polecam już samego początku nauki programowania myśleć o strukturze kodu - takie trochę SRP z SOLIDA ale nawet w odniesieniu
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wszystkieNazwyZajete: Na początek język polski, stosowanie właściwego protokołu komunikacji pomiędzy ludźmi jest może nawet ważniejsze niż tego pomiędzy maszynami. Ostatecznie to nadal my - ludzie - musimy najpierw porozumieć się ze sobą, żeby ustalić czego oczekujemy od maszyn.
  • Odpowiedz
#anonimowemirkowyznania
Hej, szukam pracy na stanowisku junior java developer.
Zależałoby mi na trafieniu do fajnego zespołu, w którym mógłbym się rozwijać.
Mój stack: Java/Spring/Hibernate/Junit/Mockito, a także trochę frontu w React.js.
Jeżeli ktoś byłby zainteresowany moją kandydaturą to będę bardzo wdzięczny za kontakt email: juniorjavawykop@gmail.com.

Dziękuję
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@LubieKiedy: Zainstalowałem sobie kiedyś GnuCOBOL i próbowałem robić Project Euler. Ogólnie ciężko. Język w wielu koncepcjach zupełnie odmienny od czegokolwiek innego, zwłaszcza jak korzysta się z typowo COBOL-owych rzeczy. Składnia wbrew pozorom poza ogólną siermiężnością to najmniejszy problem.
  • Odpowiedz
@Ewentualnie: trzeba mieć analityczny mózg na pewnym poziomie. Przypomnij sobie swoich rówieśników ze szkoły i powiedz z ręką na sercu, że z każdego z nich można zrobić programistę w skończonym czasie
  • Odpowiedz
  • 4
@Tooca_rev Studia nie uczą programować, ale dają dosyć szeroką wiedzę którą się często przydaje. Bootcampy nie przydają się do niczego :p
  • Odpowiedz
Życzę Wam wszystkiego najlepszego z okazji świąt. Małej presji w projektach, dużo pracy w firmach produktowych, z zarabiającym produktem, mało presji ze strony Scrum Mastera w Sprincie oraz jak najmniej wypalenia zawodowego w korporacji. Obyśmy kolejny rok przeżyli w Sprintach w spokoju i bez nerwów z terminowym dowozem featurów oraz mało bugów.

#pracait #korposwiat #programowanie #pracbaza #java
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Dawisek: Normalnie, wrzuć pole klasowe które będzie to query przytrzymywać i dodaj je jako argument w konstruktorze i przypisz do pola a potem wystaw metodkę która odpala logikę i używa tego query, ewentualnie se tę logikę walnij w konstruktorze bezpośrednio ale to jest antypattern, samo zinstancjonowanie obiektu nie powinno mieć żadnych side effectów
  • Odpowiedz
hej, dodałem artefakty do prywatnego nexusa (jar+pom pobrane z maven central, nie wiem czy tak się robi), projekt ładnie je zasysa przez Gradle, ale drzewko zależności różni się od tego kiedy pobieram je za pomocą mavenCentral:

+--- com.rabbitmq:amqp-client:5.14.0
| \--- org.slf4j:slf4j-api:1.7.32

gdy pobieram je z prywatnego repo to jest tylko pierwsza linijka. jeżeli dobrze rozumiem to nie zaciągają się zależności tego artefaktu? tylko dlaczego? slf4j-api jest w tej wersji na prywatnym nexusie.
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@globalbus: ja miałem w głowie jak to robiłem, że spoko pomysłem jest zrobić takie prywatne hosted repository z ogólnodostępnymi artefaktami, bo wtedy masz kontrolę nad artefaktami i ich wersjami, których używają inni ludzie w swoich narzędziach. i bym się wtedy totalnie odciął od mavenCentral().
  • Odpowiedz