线程安全
当且仅当它被多个线程反复调用时,它会一直产生正确的结果。
可重入
不引用任何共享数据,也就是不引用静态或全局变量。
联系
可重入函数是线程安全函数的一个真子集。
特点
可重入一定是线程安全,但线程安全不一定是可重入的。比如函数gethostbyname,malloc,它们是不可重入的,但是它们都是线程安全的。
我们可以想到不可重入函数可以用锁机制来达到线程安全的目的。
static data;
void thread_safe_but_non_reentrant_hongchangfirst_function()
{
lock(&mutex);
操纵data;
unlock(&mutex);
}
总结
可重入比线程安全约束更强,所以一旦一个函数是可重入的,那它必然也是线程安全的。而且若一个函数不是可重入的,我们也可以用一定的办法使它成为线程安全的,比如加锁。
原文:http://blog.csdn.net/hongchangfirst/article/details/8900434
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
步骤一,tomcat的conf目录下tomcat-users.xml内容如下:
<?xml version='1.0'
encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="xiaolu" password="xiaolu" roles="admin,manager"/>
</tomcat-users>
步骤二,在web.xml中增加如下内容:
<security-constraint>
<web-resource-collection>
<web-resource-name>xiaolu</web-resource-name>
<url-pattern>/xiaolu/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>admin</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>input authentication message</realm-name>
</login-config>
这样配置完成后,当我们访问.../xiaolu中的任何内容都会要求输入密码认证信息,认证时输入tomcat-users.xml配置的admin权限的用户名和密码即可访问(这里就只有xiaolu用户名可以访问)svn的简单安装配置:http://www.subversion.org.cn/?viewnews-1
下载google code代码
方法一:
在资源管理器中,鼠标右键点击任意位置,在菜单中选择”SVN Checkout”。
出现对话框,在”URL of repository:”中输入svn串,格式是”协议://ip:port/版本库/项目/目录“。根据实际情况输入,例如http://code.google.com/p/google-web-toolkit/source。
方法二:
打开命令行,进入工作目录,运行 (行尾是新建的目录名)
svn checkout http://zedboard-book-source.googlecode.com/svn/trunk/ zedboard-book-source-read-only
A 通过命令行操作
1、检出目录images
svn co --depth=empty http://www.iusesvn.com/project1/images images_work_dir
这样就在本地形成了一个工作拷贝目录images_work_dir
2、进入images_work_dir目录,单独更新logo.jpg
svn up logo.jpg
这样,我们就单独检出了logo.jpg,后面就可以对这个文件进行修改、提交等操作。
B 通过TortoiseSVN操作
1、使用TortiseSVN客户端(以1.5.3版为例)右键菜单中的“svn checkout”检出logo.jpg文件的上级目录images文件夹,在检出窗口中的“检出深度”处要选择“仅此项”,这样检出来才是一个空目录,本地命名为temp。
2、然后在temp文件夹上点右键,在弹出的TortiseSVN右键菜单中选择“检查更新”,在“检查更新”窗口中点击“检查版本库”,会列出该“images”目录下的所有文件。
3、在“检查更新”窗口中选中要检出的“logo.jpg”文件,点右键,在右键菜单中选择“更新”,即可将该文件单独检出。
//*** 20110916 *** kinggoo.com添加 //
Checkout方法
svn export http://单个文件地址即可
如:svn服务器http://ip上有一文件A,只需执行svn export http://ip/A 即可down下该单个文件
注意:本文所做的操作需要1.5.0或以上的Subversion客户端,即文中的svn程序需要1.5.0版本或以上,但是服务器端版本没有要求,1.5.0以下的也可以。