How to fork multiple forever blocks with for loop

In reply to dave_59:

Thanks Dave for the suggestion.

will the fork waits for all the three forever loops to join?

Also, in some post I read you suggesting to use it like below #1
what would be the best way to use #1 or #2 ?


// #1
forever @(posedge m_vif.uclk iff xyz[i] == 1) begin
  //code
end

//#2 
forever begin
  @(posedge m_vif.uclk iff xyz[i] == 1);
    //code
    // Question: is this way #2 correct or should the code be embedded in begin end blocks ?
  
end