When a host first joins a group, it programs its ethernet interface to accept the relevant traffic, and it sends an IGMP join message on its local network. This informs any local routers that there is a receiver for this group now on this subnet. The local routers remember this information, and arrange for traffic destined for this address to be delivered to the subnet. After a while, the routers wonder if there is still any member on the subnet, and send an IGMP query message to the multicast group. If the host is still a member, it replies with a new Join message unless it hears someone else do so first.
Multicast traffic continues to be delivered.
Eventually the application finishes, and the host no longer wants the traffic. It reprograms its ethernet interface to reject the traffic, but the packets are still sent until the router times the group out and sends a query to which no-one responds. The router then stops delivering the traffic. Thus joining a multicast group is quick, but leaving can be slow with IGMP version 1.