14-08-07 关于程序、进程、线程,以及python中实现多线程的办法
2014-08-08 12:02
1026 查看
开发者博客:www.developsearch.com
根据我在EXT论坛上的观察,xtype用起来的时候疑惑会比较多。甚至有些人根本忽略xtype,或者不清楚它是什么。所以我决定阐述一下这个xtype的概念。
定义
xtype就是一个代表类(Class)的标识名字。
譬如,你有这个类,名字是Ext.ux.MyGrid。正常情况下你需要用这个名字来实例化这个类(创建类的对象)。
除了类名外,你还可以这样登记类的xtype:
view source
print?
其中xtype是mygrid 而类名的一般形式是Ext.ux.MyGrid。上面的语句登记了新的xtype,换种说法说,xtype mygrid 与类 Ext.ux.MyGrid是连在一起的。
到底有什么好处?
试想一下,你手头上的是一个大型的项目,为了响应用户的操作,程序里面包含者大量的对象(windows、forms、grids)。用户点击图标或按钮,就会新建一个窗体,窗体里面又有grid,最终在屏幕上渲染出来。
嗯,我们回到Ext2.x之前的编码,那时候我们实例化所有对象是页面第一次加载后就进行的(程序代码第一次的运行)。在客户端内存中,Ext.ux.MyGrid类的对象已经存在,等待用户的点击。同样是这个grid,假设你上百个的实例,...是多么浪费宝贵的资源啊!很多grid其实用户未必会点击让它出现。
延时实例化
如果你使用xtype,那么在代码中的仅仅是一个用于配置的对象,像:
嗯,用户点击按钮或图标会怎么样呢?Ext会辨认出它是一个准备要渲染的grid但不立刻实例化,Ext在ComponentMgr的帮忙下明白这么一回事:“如果我要实例化xtypemygrid的对象,我就知道要创建的实际是类Ext.ux.MyGrid的对象”。即如下列代码:
view source
print?
等价于:
开发者博客:www.developsearch.com
根据我在EXT论坛上的观察,xtype用起来的时候疑惑会比较多。甚至有些人根本忽略xtype,或者不清楚它是什么。所以我决定阐述一下这个xtype的概念。
定义
xtype就是一个代表类(Class)的标识名字。
譬如,你有这个类,名字是Ext.ux.MyGrid。正常情况下你需要用这个名字来实例化这个类(创建类的对象)。
除了类名外,你还可以这样登记类的xtype:
view source
print?
1.
Ext.reg(
'mygrid'
, Ext.ux.MyGrid);
其中xtype是mygrid 而类名的一般形式是Ext.ux.MyGrid。上面的语句登记了新的xtype,换种说法说,xtype mygrid 与类 Ext.ux.MyGrid是连在一起的。
到底有什么好处?
试想一下,你手头上的是一个大型的项目,为了响应用户的操作,程序里面包含者大量的对象(windows、forms、grids)。用户点击图标或按钮,就会新建一个窗体,窗体里面又有grid,最终在屏幕上渲染出来。
嗯,我们回到Ext2.x之前的编码,那时候我们实例化所有对象是页面第一次加载后就进行的(程序代码第一次的运行)。在客户端内存中,Ext.ux.MyGrid类的对象已经存在,等待用户的点击。同样是这个grid,假设你上百个的实例,...是多么浪费宝贵的资源啊!很多grid其实用户未必会点击让它出现。
延时实例化
如果你使用xtype,那么在代码中的仅仅是一个用于配置的对象,像:
{xtype:'mygrid", border:false, width:600, height:400, ...}消耗没有实例对象来得大。
嗯,用户点击按钮或图标会怎么样呢?Ext会辨认出它是一个准备要渲染的grid但不立刻实例化,Ext在ComponentMgr的帮忙下明白这么一回事:“如果我要实例化xtypemygrid的对象,我就知道要创建的实际是类Ext.ux.MyGrid的对象”。即如下列代码:
view source
print?
1.
create :
function
(config, defaultType){
2.
return
new
types[config.xtype || defaultType](config);
3.
}
等价于:
return new Ext.ux.MyGrid(config);然后实例化grid,进行渲染和显示。谨记:需要的时候才实例化。
开发者博客:www.developsearch.com
相关文章推荐
- 突破python缺陷,实现几种自定义线程池 以及进程、线程、协程的介绍
- 多线程实现生产者消费者模型,以及线程和进程的回顾
- 线程和进程的区别?以及如何实现多线程
- Python能否实现超时,以及一些关于线程知识的复习
- 突破python缺陷,实现几种自定义线程池 以及进程、线程、协程的介绍
- 突破python缺陷,实现几种自定义线程池 以及进程、线程、协程的介绍
- 关于Python的进程线程协程之threading模块(二)Lock,RLock对象以及Semaphore,BoundedSemaphore对象
- Java第七课 Java的多线程程序进程和线程的概念,实现多线程的两种方式,线程同步的原理,线程的死锁,运用wait和notify来实现producer - consumer关系,线程终止的两种情况。
- android系统中的多线程(一): 关于在android中启动线程以及线程间的交互
- 多线程之进程、线程与多线程文字滚动的实现
- 关于进程和线程以及句柄
- boost中asio网络库多线程并发处理实现,以及asio在多线程模型中线程的调度情况和线程安全。
- 进程,线程,多进程,多线程以及主线程
- Java程序、进程和线程-Java对多线程的支持-Java线程的同步--2011年09月05日
- python实现linux kill进程的小程序
- 黑马程序员01--线程与进程的区别以及为什么使用多线程?
- 关于BASE 24 ,BASE 64原理以及实现程序
- python 实现多进程和多线程的例子
- java学习5---Java 的多线程,程序、进程和线程的概念
- 关于MFC下多线程,在线程中创建非模态对话框以及消息传递