国外大站使用Javascript framework调查
Royal Pingdom最近发布了一份关于200个流行网站都采用了哪些Javascript框架的调查报告。这些网站分别是Alexa美国排名前100名和Webware前100名的网站应用。
原文地址:http://royal.pingdom.com/?p=305
未必全面,不过可以做个参考,JQuery真的很不错。
Royal Pingdom最近发布了一份关于200个流行网站都采用了哪些Javascript框架的调查报告。这些网站分别是Alexa美国排名前100名和Webware前100名的网站应用。
原文地址:http://royal.pingdom.com/?p=305
未必全面,不过可以做个参考,JQuery真的很不错。
A:下载Apache并安装。
B:下载Subvervion,注意要下载zip格式的,并且要注意其所对应的Apache版本。下载地址:http://subversion.tigris.org/
C: 解压缩Subversion文件,并将其中的bin文件夹添加到PATH环境变量中,这一步并非必须,但是为了更方便的使用SVN命令建议这样做。
D:将环境变量LANG设置为en_US,如果没有则添加。这一步并非必须,如果使用SVN命令出现乱码,则这一步可以解决这个问题。
E:使用svnadmin create D:/ svn 命令创建一个SVN版本仓库。
F:将解压缩后Subversion文件夹其中的bin文件夹下面的mod_authz_svn.so、mod_dav_svn.so、intl3_svn.dll、libdb44.dll复制到Apache安装目录的modules文件夹下。注意四个文件必须全部复制,否则可能会出现Cannot load mod_dav_svn.so into server的错误。
G:修改httpd.conf文件,添加如下指令:
LoadModule dav_authz_module modules/mod_authz_svn.so LoadModule dav_svn_module modules/mod_dav_svn.so <Location /svn> DAV svn SVNPath D:/svn
#SVNParentPath D:/svn
</Location>
H:重启Apache,现在可以通过http://localhost/svn来访问svn仓库了。
I:推荐的版本库布局,创建一个trunk目录来保存开发的“主线”,一个branches目录存放分支拷贝,tags目录保存标签拷贝。
创建trunk目录示例:
svn import your files your svn/trunk
创建branches目录示例:
svn copy http://svn.example.com/repos/calc/trunk http://svn.example.com/repos/calc/branches/my-calc-branch -m “example”
创建tags目录示例:
copy http://svn.example.com/repos/calc/trunk http://svn.example.com/repos/calc/tags/release-1.0 -m “example”
J:Subversion在日常工作中常用的命令
K:Eclipse的SVN插件Subclipse
http://subclipse.tigris.org/update_1.0.x
L:SVN在线帮助文档
http://www.subversion.org.cn/svnbook/1.4/index.html
M:Download PPT
线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,需要使用线程“同步”机制,同步锁。
在Java里面,任何一个Object Reference都可以作为同步锁。我们可以把Object Reference理解为对象在内存分配系统中的内存地址。因此,要保证同步代码段之间使用的是同一个同步锁,我们就要保证这些同步代码段的 synchronized关键字使用的是同一个Object Reference,同一个内存地址。
每一个同步锁下面都挂了几个线程队列,包括就绪(Ready)队列,待召(Waiting)队列等,每个队列里面都可能有多个暂停运行的线程。竞争同步锁失败的线程进入的是该同步锁的就绪(Ready)队列,而不是后面要讲述的待召(Waiting Queue)队列。就绪队列里面的线程总是时刻准备着竞争同步锁,时刻准备着运行。而待召队列里面的线程则只能一直等待,直到等到某个 信号的通知之后,才能够转移到就绪队列中,准备运行。
成功获取同步锁的线程,执行完同步代码段之后,会释放同步锁。该同步锁的就绪队列中的其他线程就继续下一轮同步锁的竞争。成功者就可以继续运行,失败者还是要乖乖地待在就绪队列中。 因此,线程同步是非常耗费资源的一种操作。我们要尽量控制线程同步的代码段范围。同步的代码段范围越小越好。我们用一个名词“同步粒度”来表示同步代码段的范围。 所谓同步粒度,就是同步的代码段的范围,该范围越小越好。
信号量模型:线程在运行的过程中,可以主动停下来,等待某个信号量的通知;这时候,该线程就进入到该信号量的待召(Waiting)队列当中;等到通知之后,再继续运行。在Java中,与此相关的分别是Object的两个方法:wait()和notify().
这是一篇别人文章的摘要,原文地址: http://www.javaeye.com/topic/164905
原文地址:http://www.javaeye.com/news/2494
哈哈,看起来我当初的技术方案选择是对的,太棒了。又多了一些信心。