复合操作ITeye - AG环亚娱乐

复合操作ITeye

2019-01-11 05:48:43 | 作者: 宇浩 | 标签: 操作,状况,线程 | 浏览: 782

咱们将“先查看后履行”以及“读取-修正-写入"等操作统称为契合操作:包含了一组有必要以原子方法履行的操作以保证线程安全性。后边咱们会评论加锁机制,这是Java中用于保证原子性的内存机制,咱们还可以运用一个现有的线程安全类:

public class CountingFactorizer implements Servlet{
 private final AtomicLong count=new AtomicLong(0);
 public long getCount(){return count.get();}
 public void service(ServletRequest req,ServletResponse resp){
 BigInteger i=extractFromRequest(req);
 BigInteger[] factors=factor(i);
 count.incrementAndGet();
 encodeIntoResponse(resp,factors);
}

  在java.util.coucurrent.atomic包中包含了一些原子变量类,用于完成在数值和目标引用上的原子状况转化。经过用AtomicLong来替代long类型的计数器,可以保证一切对计数器状况的拜访操作都是原子的。因为Servlet的状况便是计数器的状况,而且计数器是线程安全的,因而这儿的Servlet也是线程安全的。

   在实际状况中,应尽或许地运用现有的线程安全目标(如AtomicLong)来管理类的状况。 与非线程安全的目标比较,判别线程安全目标的或许状况及其状况转化状况要更为简单,然后也更简单保护和验证线程安全性。

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章