two reasons: when running multithreaded, it will be more responsive to quit requests.  When running with greenlets, the quit checks become the cooperative multitasking yields.