In Python specifically, how do variables get shared between threads?
Although I have used ```threading.Thread``` before I never really understood or saw examples of how variables got shared.  Are they shared between the main thread and the children or only among the children? When would I need to use thread local storage to avoid this sharing?
I have seen many warnings about synchronizing access to shared data among threads by using locks but I have yet to see a really good example of the problem. 
Thanks in advance!
It's important to understand that in Python, by default, all variables created inside a function or a class are considered "global to that function or class" and are not thread-local. This means that when you create multiple threads and they all have access to the same Python object (which is the case for most variables), they can all modify that object without any explicit synchronization.
Here's an example to illustrate this:
```python
import threading
counter = 0
def increment_counter():
    global counter
    counter += 1
threads = []
for i in
Why is iceberg lettuce bad for rabbits?

Iceberg lettuce contains lactucarium, a milky sap that can cause digestive issues and discomfort in rabbits. Additionally, it is high in water content, which may dilute the rabbit's nutrient intake and lead to diarrhea if consumed in large quantities. It's typically best to avoid feeding iceberg lettuce to rabbits. Instead, opt for leafy greens such as kale, Romaine lettuce, collard greens, or spinach. These greens are more nutrient-dense and safer for rabbit health.