当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪一分钟让你知道线程安全与不可重入的区别      线程安全 当且仅当它被多个线程反复调用时,它会一直产生正确的结果。 可重入 不引用任何共享数据,也就是不引用静态或全局变量。 联系 可重入函数是线程安全函数的一个真子集。 特点.........
    ▪团队合作开发权限管理      步骤一,tomcat的conf目录下tomcat-users.xml内容如下: <?xml version='1.0' encoding='utf-8'?> <tomcat-users>   <role rolename="manager"/>   <role rolename="admin"/>   <user userna.........
    ▪用svn下载google code代码(win7下)      svn的简单安装配置:http://www.subversion.org.cn/?viewnews-1 下载google code代码 方法一: 在资源管理器中,鼠标右键点击任意位置,在菜单中选择”SVN Checkout”。  出现对话框,在”URL of repository:.........

[1]一分钟让你知道线程安全与不可重入的区别
    来源: 互联网  发布时间: 2013-11-19

线程安全

当且仅当它被多个线程反复调用时,它会一直产生正确的结果。

可重入

不引用任何共享数据,也就是不引用静态或全局变量。

联系

可重入函数是线程安全函数的一个真子集。

特点

可重入一定是线程安全,但线程安全不一定是可重入的。比如函数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


作者:hongchangfirst 发表于2013-5-8 15:21:18 原文链接
阅读:35 评论:0 查看评论

    
[2]团队合作开发权限管理
    来源: 互联网  发布时间: 2013-11-19

步骤一,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用户名可以访问)
作者:luxiaoruo 发表于2013-5-8 15:16:40 原文链接
阅读:32 评论:0 查看评论

    
[3]用svn下载google code代码(win7下)
    来源: 互联网  发布时间: 2013-11-19

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


Subversion中如何checkout出单个文件

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以下的也可以。

作者:jeakon 发表于2013-5-8 15:11:12 原文链接
阅读:40 评论:0 查看评论

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3