I know Python daemon thread will auto exit if parent thread exit. The reason I ask if because my main thread is sometime working on CPU heavy calculation which blocks the heart beat message. Other module thinks this service is dead and planning for funeral. 

I want to use some kind of daemon thread(or process?) that is the child of main thread, to send heart beat message. 

My question is if my main thread is blocking, for example:

```
while True:
   a = a + 1

```

Will my daemon child thread be blocked as well? any example or evidence? What role does GIL (Global Interpreter Lock) play here? 

**Edit**

To @ShadowRanger's point, the following example shows, waiter can log out the the message, given the worker thread is blocking (taking 220% CPU resource)

```
import time
from threading import Thread

class worker(Thread):
    def run(self):
        t = 10
        x = 10
        while True:
            x = t + 1

class waiter(Thread):
    def run(self):
        for x in xrange(100,150):
            print x
            time.sleep(0.5)

def run():
    worker().start()
    waiter().start()

run()

```