In reply to muku_383:
// Try this code
module top;
semaphore sema=new();
task a1();
#10 $display($realtime, "\t Thread a1 compleated"); sema.put(1);
endtask
task a2();
#15 $display($realtime, "\t Thread a2 compleated"); sema.put(1);
endtask
task a3();
#5 $display($realtime, "\t Thread a3 compleated"); sema.put(1);
endtask
task a4();
#20 $display($realtime, "\t Thread a4 compleated"); sema.put(1);
endtask
task a5();
#25 $display($realtime, "\t Thread a5 compleated"); sema.put(1);
endtask
initial begin
fork
a1();
a2();
a3();
a4();
a5();
join_none
sema.get(3);
disable fork;
$display("fork disabled at %0t",$stime);
end
initial #100 $finish();
endmodule