It's so confusing. We adults don't really share with strangers so I always find it awkward telling DS1 to share his toys with kids he doesn't know at the park etc, so I never do.
If we have friends over with kids, I ask him to share his toys with them, but if he's playing with one and a guest is trying to take it I tell the kid that after DS will finish he can have a turn but please don't snatch.
At the park etc if a kid tries to play with his toys I won't ask him to share, if he's happy to share great. If he tries to play with other kids' toys I explain to him that it's their toys and not ours so he can't play with them (he always tries to ride other kids' bikes).
At playgroup I stopped bringing his toys that he sometimes wants to bring because he doesn't always want to share and it seems to annoy other mums when he doesn't. I've got no qualms with other kids' bringing a special toy and not wanting to share, I think we can explain that there's playgroup toys that are for sharing and kids' special toys that they brought with them.
When do you get your kids to share and when do you not?