I understand, that what I suggest does not solve the problem you want, but..
Why do you want to restrict CPU usage to 30%? In Windows I run CPU intesive therads on IDLE priority, while interfacand/or communication threads run on normal. This gives me best of two worlds: 1. I use 100% CPU (good) and 2. progam i responcive (very good). There is no cross platform way to change the thread priority. But most OS (as well as thread libraries) support setting priorities. -- http://mail.python.org/mailman/listinfo/python-list