Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5933607
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T14:59:48+00:00 2026-05-22T14:59:48+00:00

Doing a course on concurrent programming. As an example we have final class Counter

  • 0

Doing a course on concurrent programming.

As an example we have

final class Counter {

        private AtomicInteger value;

        public long getValue() {
            return value.get();
        }

        public long increment() {
            int v;
            do {
                v = value.get();
            }
            while(!value.compareAndSet(v, v+1));
            return v+1;
        }
}

Why would you use compareAndSet in this case and not incrementAndGet ?

Thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T14:59:49+00:00Added an answer on May 22, 2026 at 2:59 pm

    Here the the implementation of AtomicInteger.incrementAndGet() method from the JDK version I have on my machine:

    /**
     * Atomically increments by one the current value.
     *
     * @return the updated value
     */
    public final int incrementAndGet() {
        for (;;) {
            int current = get();
            int next = current + 1;
            if (compareAndSet(current, next))
                return next;
        }
    }
    

    As you can see, the implementation is very similar to yours.

    PS: Why do you compute v+1 twice?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I was doing a project for computer course on programming concepts. This project was
I'm doing some small program for a beginners programming course and in my program
I'm doing my final project for my algorithms course in C. For the project,
I'm currently doing a Functional Programming course and I'm quite amused by the concept
I have been doing a crash course of C# OOP and am curious to
Doing component-based development, I find myself doing this fairly often: public class SomeClass {
I'm doing a task for a course in Java programming and I'm not sure
I'm doing a c# course at university, and now I'm beginning linQ to xml,
I'm doing a project in a course at my university on distributed systems. I'm
I'm doing a project on filesystems on a university operating systems course, my C

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.