Dennis, I am really appreciated you comments. Thanks you very much. And let me a little bit explain idea of program. I should did it earlier. Instead of empty loops i already tried to use time.sleep() firstly, but effect was same, all other threads do not working too and as experiment i tried empty loops then. All stages as numbered should be accomplished sequently and no thread needed there. The reason of waiting in the begining of each stage is waiting insertion of Sim cards to reader. When card inserted CardMonitor which implements observer calls update() method of each subscriber. In my case this is CardsObserver.update() method. This is accomplished in seperate thread created in CardMonitor library class (by the way I just only write main application, all other sources are from framework). As you can see CardsObserver.update () calls appMainFrame.addCards method which update step semaphore. I did realize it by using semaphore based on Bryan solution. Firstly it was just only integer variable and addCards() increment it by 1. In any case I cannot understand why when MainThread is doing some action, even sleeping (time.sleep()) all other threads blocked as well. Regarding to other your comments. Honestly this is my first experience in Python and as I suppose I didn't understand main principles and ideas of Python up to now. Well, this is a way for future investigation. :)
Best regards, /Gelios -- http://mail.python.org/mailman/listinfo/python-list