In reply to chaitanya_i:
get_next_item() is a blocking call, where-as get() is a non-blocking call.
get() is used in cases, where the given protocol/interface supports pipe-lining.
Refer “Driver/Pipelined” section of UVM cookbook for an example of get()/put().