title: Do static methods block?
body: <p>Let's say I have a class defined as:</p>
  
  <pre><code>public class MyClass {
  
      private static int data;
  
      public static staticMethod(int val){
        ... do something with data based on val ...
      }
  }
  </code></pre>
  
  <p>And now let's say I have many Java threads running in my application that make calls to the static method </p>
  
  <pre><code>MyClass.staticMethod(int)
  </code></pre>
  
  <p>Will the method block upon each invocation? i.e., if thread 1 calls the method first and while that run of the method is being executed, thread 2 calls the static method, will the second thread have to wait until the first execution is completed? </p>
  
  <p>If the answer is no, then when would it make sense to use static data members in a un-"synchronized" way?</p>