zoukankan      html  css  js  c++  java
  • 线程安全性

    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;   

    }

     } 

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

  • 相关阅读:
    PAT 甲级 1128 N Queens Puzzle
    HDU 1995 R-汉诺塔V
    PAT L1-039 古风排版
    PAT L2-028 秀恩爱分得快
    ZOJ 2060 A-Fibonacci Again
    HDU 2079 选课时间
    HDU 1016 Prime Ring Problem
    理论相关概念原理
    单播字符、字符串收发
    OSAL的原理
  • 原文地址:https://www.cnblogs.com/woniufei/p/9761589.html
Copyright © 2011-2022 走看看