In reply to SKUPPAM:
Yes, I think you get it now.
The thread that does the analysis_port.write() (typically in the monitor) executes all of the subscribers write() implementations in the same thread. An analysis_fifo has a predefined implementation whose write() method does a put into a fifo. Another thread is needed to get() transactions out of the fifo.