博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程安全性
阅读量:4921 次
发布时间:2019-06-11

本文共 668 字,大约阅读时间需要 2 分钟。

1.在线程安全性的定义中,最核心的概念就是正确性,如果对线程安全性的定义是模糊的,那么就是因为缺乏对正确性的清晰定义。

2.当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么这个类就是线程安全的。

3.大多数servlet都是无状态的,从而极大的降低了在实现servlet线程安全性时的复杂性。只有当servlet在处理请求时需要保存一些信息,线程安全性才会成为一个问题。

4.原子性:假设在无状态对象中增加一个状态,如增加一个计数器来统计所处理的请求数量。一种直观的方法是在servlet中增加一个long类型的域,并且每处理一个请求就将这个值加1.

    @NotThreadSafe

     public class UnsafeContingFactorizer  implements Servlet {

      private long count  = 0;

    public long getCount(){ return count;}

 

     public void service(ServletRequest req, ServletRespose resp){

     BigInteger  i =  extractFromRequest(req);

     BigInteger[]  factors = factor(i);

     ++count;   

}

 } 

   不幸的是上面的实例并非是线程安全的,尽管她在单线程环境中能正确运行。这个类可能会丢失一些更新操作。

 

转载于:https://www.cnblogs.com/woniufei/p/9761589.html

你可能感兴趣的文章
【转】中国人唯一不认可的成功——就是家庭的和睦,人生的平淡
查看>>
[物理学与PDEs]第2章第5节 一维流体力学方程组的 Lagrange 形式 5.4 一维粘性热传导流体力学方程组的 Lagrange 形式...
查看>>
[再寄小读者之数学篇](2014-06-20 Beta 函数)
查看>>
asp.net内置对象Server
查看>>
SPOJ RATING
查看>>
POJ 1523
查看>>
redis--小白博客
查看>>
HDOJ-1013
查看>>
sudo: sorry, you must have a tty to run sudo
查看>>
【JBPM4】流程部署
查看>>
OneDrive网页版打不开的解决办法
查看>>
正则表达式-手机号
查看>>
Mac下使用Typora的一些简单操作
查看>>
python常用工具库介绍
查看>>
【转】android权限列表
查看>>
SMB横向利用
查看>>
cookie 和session 的区别详解
查看>>
文本处理命令
查看>>
HDU1241_广度优先搜索
查看>>
vim部分常用命令总结
查看>>