单线程化的GUI框架并不仅仅存在于java中:Qt、NextStep、MacOS Cocoa、XWindows,等等都是单线程化的。

从面向过程的编程到面向对象的编程,GUi界面是一个一直在循环的线程,但今天脑子堵塞了“它是怎么运作的”,我告诉自己这是面向对象的,不用多考虑,就像你自己一样你要考虑啥循环啊考虑什么堵塞啊,对象你只要知道何时创建何时销毁使用交流就行了,管他是怎么存在的。不过还是觉得心里痒痒的,又回到了C语言。

 
一般有实用性的c语言程序中都用到字幕选择交互屏幕来使得程序更友好,人机互动性更强。  而符合有效得控制字母选择屏幕的循环输出则显得尤为重要。而利用无限可控循环则是一种高效的方法之一。其基本思路是。在生成字母屏幕的函数中创建一个无限循环,在循环体内利用switch,case语句或者if,else语句来控制选择结果的动态处理。如果要要用户更加灵活的使用是否来决定程序的继续运行与否,则可在循环体内在套一层循环来实现。当内层循环break到外部循环的时候程序继续正常运行。当内部循环改变了外部循环的条件并且满足终止条件时外部的无限可控循环结束。程序正常运行结束

那么Qt重的信号和槽机制是不是也是单线程的呢,Qt界面不过是等待输入的 getchar()或者什么,接受到输入以后调用对应的处理函数,处理函数执行完毕继续循环。至于信号和槽不过是对象之间通信的方式,对象不过就是函数,只不过是函数之间的参数或者数据传递,这么想稍微舒服一点了,搞了半天好像自己什么都不懂呢,学而不思则罔。