`

由think-time引发的一些感悟

阅读更多
一、品读
这段时间一直在看Hibernate3.6.0英文文档,其中第11.1小节中有这么一句话:
引用
This feature enables a programming model for long running units of work that require user think-time.

我对这句英文中的一个地方看不大懂,就是user think-time的具体代表什么涵义,字面的意思大概就是用户思考时间,显然从字面意思上理解起来不是很通顺,随之去查阅对应的中文文档,里面是这么说的:
引用
这个功能使得一种编程模型,即中间会给用户思考时间的长时间运行的操作单元的编程模型成为可能。

很遗憾,这里的解释也不是很明确。凭我的直觉来看,这段英文的背后肯定隐藏着很深的道理,所以我一定要弄清楚它到底指的是什么一种编程模型。

我首先在Google上搜索,think-time是什么意思。在搜索的过程中,点击进入了一个国外的网站论坛,有个老外在问think-time是什么?另一个老外是这样回答的:
引用
Think time is the time that a real user waits between actions.
Example:When a user receives data from a server,the user may wait several seconds to review the data before responding.

大致意思是这样的:
think time指的是一个真实用户等待于多个action之间的那段时间。例如:当用户接收到来自服务器的数据,这个用户在做出下一步反应之前可能要等几秒钟来看刚刚发送过来的数据。

在举个离我们最接近的例子:
你在javaeye论坛看帖子,看到了一个你很感兴趣的帖子,并且要对帖子发表自己的观点;
首先假定这个帖子是从数据库当中取出来,你看到的帖子就是刚刚从数据库中读取出来的,你需要先看一会,然后打算发表自己的观点,你在回复栏中写好内容,准备点击提交按钮。

注意:当你看到帖子的时候算起到你点击提交按钮的时候结束,这段时间就可以认为是think-time;并且这段时间是介于两个action之间(这里的action指的不是Struts中的action,泛指某种行为活动)。
这个例子是我个人理解认为的,可能不太精确,但是在大体意思上不会有出入。

二、悟道
经过一番思考之后,我断定Hibernate文档中所说的think-time表述的就是这个意思。
下面再详细解释一下:
引用
long running units of work that require user think-time

that的前半句:持续时间相当长的工作单元(实际中未必会持续很长时间,理解为一个时间段就好了;还有就是仅仅在时间段上理解就足够了,其背后的含义并不是真正地解释时间段问题)。
that的后半句:又详细的解释了long running,那就是用户的think-time。

开头大家看到的那句英文的前半段,也就是for之前的:
引用
This feature enables a programming model

大致意思是这个特性使一种编程模型成为可能。首先说明下这个编程模型是什么,在Hibernate文档第13.1.2中有提到:session-per-request-with-detached-objects。也就是每个请求一个session,其中伴有detached状态对象。具体细节文档都有,这里就不细说了。

经过这一番思考与摸索,终于解开了一个多星期的疑惑。
这篇博文的核心思想旨在向大家介绍一下我自己的学习方法,算是抛砖引玉了吧~~~

听很多人都跟说过,多读文档,而且要是英文文档。起初我也没太在意,反正读中文的也能明白,也就懒的去读英文的了;再说我英文水平也不好,看起来也费尽,所以一直看的都是中文文档。

就在我前些日子在读Hibernate3.6.0英文文档发现那段费解的英文句子之后,我的观点彻底改变了。通过这个小小的由两个单词组成的复合词,它背后就隐藏着这么深的小细节,而且最近一段时间我都在读Hibernate英文文档,其中发现有很多英文信息弥补了在认知方面上的不足,很好很强大的说~~~

随后我还会继续读英文文档,再积累一段时间之后,会总结出自己在读英文资料时的一些经验和感悟。

如此博文有幸被您看到,或是高手,或是新手,希望您不吝赐教,可发送站内短信,咱们互相交流,共同提高技术水平。


0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics