How to use locks/synchronization here
        Posted  
        
            by 
                MasterGberry
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by MasterGberry
        
        
        
        Published on 2013-07-01T16:10:21Z
        Indexed on 
            2013/07/01
            16:21 UTC
        
        
        Read the original article
        Hit count: 300
        
java
|multithreading
I have this code block here and i need to make sure the rankedPlayersWaitingForMatch is synchronized between threads properly.  I was going to use synchronize but that i don't think will work here because of the variable being used in the if statement.  I read online about final Lock lock = new ReentrantLock(); but I am a bit confused on how to use it in this case properly with the try/finally block.  Can I get a quick example?  Thanks
// start synchronization
if (rankedPlayersWaitingForMatch.get(rankedType).size() >= 2) {
  Player player1 = rankedPlayersWaitingForMatch.get(rankedType).remove();
  Player player2 = rankedPlayersWaitingForMatch.get(rankedType).remove();
  // end synchronization
  // ... I don't want this all to be synchronized, just after the first 2 remove()
} else {
  // end synchronization
  // ...
}
        © Stack Overflow or respective owner