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

  • SEARCH
  • Home
  • 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 8877287
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T19:25:57+00:00 2026-06-14T19:25:57+00:00

I have a program which is listening for random numbers. It is hooked up

  • 0

I have a program which is listening for random numbers. It is hooked up to a publisher which gives me a number and a new count and every time I get an update, I’m storing the current count for that number in a HashMap.

I also have an SSL server listening for requests. When a request comes in asking “how many 7’s do we have” I just return the value in my HashMap.

Now I want to add logic that says, if we have 0 occurrences of that number, wait until we get one, and return the count at that point. However I’m struggling because of the limitation on the Thread’s run method, that it must be a void. I wonder if there is anyway to just declare my method as one that always launches a new thread, or maybe a better way to handle it than what I am doing. Here is what I have:

private static volatile HashMap<Integer, Integer> occurenceMap= new HashMap<Integer, Integer>();

public synchronized static int getNumOccurrences(final Integer number) {

    try { 
    (new Thread() {

        public void run() {

            Integer occurrences = occurenceMap.get(number); 
            if ( occurrences != null && occurrences > 0 ) {
              // here I would like to just return occurences;
            } else {
                CountDownLatch latch = new CountDownLatch(1); 
                pendingList.put(number, latch);
                latch.await();  
                // elsewhere in the code, I call countdown when I get a hit
                pendingList.remove(number);

                // once we've counted down, I would like to return the value
             }
           }
       }).start();
   } catch ( Throwable t ) { }
}

However, I can’t put return statements in the run method. So how is this best done?

Thank you!

  • 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-06-14T19:25:58+00:00Added an answer on June 14, 2026 at 7:25 pm

    You’d need some kind of external structure to store the number, like this

    // declared outside your runnable
    final AtomicInteger result = new AtomicInteger(0);
    
    // in your run method
    // return value; // doesn't work, can't return
    result.set(value);
    

    So adding it into yours, you get this

    Note that my comments start with // C:

    private static volatile HashMap<Integer, Integer> occurenceMap= new HashMap<Integer, Integer>();
    
    
        public synchronized static int getNumOccurrences(final Integer number) {
            // C: here's a container to use inside the runnable
            // C: must be final to use inside the runnable below
            final AtomicInteger result = new AtomicInteger(0);
            try { 
            // C: keep a rerefence to the thread we create
            Thread thread = new Thread() {
    
                public void run() {
    
                    Integer occurrences = occurenceMap.get(number); 
                    if ( occurrences != null && occurrences > 0 ) {
                        result.set(occurences); // C: we found what we're looking for
                        return; // C: so get out of the run method
                    } else {
                        CountDownLatch latch = new CountDownLatch(1); 
                        pendingList.put(number, latch);
                        latch.await();  
                        // elsewhere in the code, I call countdown when I get a hit
                        pendingList.remove(number);
    
                        // once we've counted down, I would like to return the value
                        result.set(1); // C: I'm not sure what you want to return here
                        return; // C: but I'm sure you can figure that out...
                     }
                   }
               });
               thread.start(); // C: now start the thread
               thread.join(); // C: join the thread, waiting for it to finish
           } catch ( Throwable t ) { }
           return result.get(); // C: now return the int from the container
        }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a program which I would like to run every X min the
I have a program which takes a long time to complete. I would like
I have a java program which has a server-socket listening infinitely. In case of
I have a program which creates JButtons which are then added to a JPanel
I have a program which dynamically generates a GUI. I don't know how many
I have a program which outputs a pair of words surrounded by spaces on
I have a program which prints a multi-page document. The first page is pre-printed
I have a program which runs an external, command line utility and reads the
I have a program which doesn't once reference System.I0, coded in vb.net, yet for
I have a program which runs on a console and its Umlauts and other

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.