What is the difference between multithreading and using multi initial blocks?

even two initial blocks run in parallel. so what is the need of multithreading

In reply to Suhas BV:

I do not understand the context of your wording: multithreading. Two initial block running in parallel is just one example of multi-threading. Other constructs that introduce multi-threading include always, fork/join and continuous assignments.

Also, there is a difference between a SystemVerilog simulation thread, and the host operating system’s concept of a thread. So you need to explain your question in much more detail.