How sequences is start?

how sequences is start?
what is difference between sequence_handle.start (sequencer_handle) and `uvm_do_on (sequence_handle , sequencer_handle ) ? is it same ?

I have seen two virtual sequence example one of the example there use sequence_handle.start (sequencer_handle) and second example there use `uvm_do_on (sequence_handle , sequencer_handle ) I am confused could you please explain both of the method?

In reply to Vrajesh_Rojivadiya:
There are only 2 ways to start a sequence:
(1) calling the start method (recommended)
(2) using the default sequence approach

The `uvm_do* macros are used inside the sequence to generate seq_items.