title: System Verilog fork join - Not actually parallel?
body: <p>I am learning system verilog and thought separate threads are created for each process in <code>fork/join</code>. But, I find if I have a <code>while</code> loop in my first process, my second process does not start, which makes me think <code>fork/join</code> is not actually parallel.</p>
  
  <pre><code>class A;
  
  task run();
  $display("A started");
  while(1);
  endtask
  
  endclass
  
  class B;
  
  task run();
  $display("B started");
  endtask
  
  endclass
  
  class C;
  
  task run();
  fork
     A.run();
     B.run(); 
  join
  endtask
  
  endclass
  </code></pre>
  
  <p>My output is</p>
  
  <pre><code> Class A started 
  </code></pre>
  
  <p>and the program is running forever. I thought it should print</p>
  
  <pre><code> Class A started
   Class B started
  </code></pre>
  
  <p>and run forever.
  Could someone point out what I am missing here?</p>