jcp.ch01.basic.CachedFactorizer

 1 package book.jcp.ch01.basic;
 2
 3 import java.math.BigInteger;
 4
 5 public class CachedFactorizer {
 6
 7     private BigInteger lastNumberBigInteger;
 8     private BigInteger[] lastFactorsBigIntegers;
 9     private long hits;
10     private long cacheHits;
11
12     public synchronized long getHits() {
13         return hits;
14     }
15
16     public synchronized double getHitRatio() {
17         return (double) cacheHits / (double) hits;
18     }
19
20     public void service(int req, int resp) {
21         BigInteger i = extractFromRequest(req);
22         BigInteger[] newFactors = null;
23         synchronized (this) {
24             ++hits;
25             if (i.equals(lastNumberBigInteger)) {
26                 ++cacheHits;
27                 newFactors = lastFactorsBigIntegers.clone();
28             }
29         }
30         if (newFactors == null) {
31             newFactors = factor(i);
32             synchronized (this) {
33                 lastNumberBigInteger = i;
34                 lastFactorsBigIntegers = newFactors.clone();
35             }
36         }
37         encodeIntoResponse(resp, newFactors);
38     }
39
40     private BigInteger[] factor(BigInteger i) {
41         // TODO Auto-generated method stub
42         return null;
43     }
44
45     private void encodeIntoResponse(int resp, BigInteger[] factors) {
46         // TODO Auto-generated method stub
47
48     }
49
50     private BigInteger extractFromRequest(int req) {
51         // TODO Auto-generated method stub
52         return null;
53     }
54 }
时间: 2024-10-12 02:28:38

jcp.ch01.basic.CachedFactorizer的相关文章

[C++] Variables and Basic Types

Getting Started compile C++ program source $ g++ -o prog grog1.cc run C++ program $ ./prog The library, iostream, define four IO object: cin, cout, cerr, clog. std::cout << "hello world" << std::endl; The result of the output operato

Click Models for Web Search(1) - Basic Click Models

这篇文章主要是介绍一些基本的click model,这些不同的click model对用户与搜索结果页的交互行为进行不同的假设. 为了定义一个model,我们需要描述出observed variables,hidden variables,以及它们之间的关联,以及它们对model parameters的依赖关系.当我们获取了model parameters之后,我们便可以进行CTR 预估,或者计算数据的最大似然估计. 1. RANDOM CLICK MODEL (RCM) 这是最简单的一个mod

LeetCode OJ:Basic Calculator(基础计算器)

Implement a basic calculator to evaluate a simple expression string. The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empty spaces . You may assume that the given expression is

Introduction and Basic concepts

1 Network Edge The device such as computers and mobiles connect to the Internet. So they are referred as end systems(who run the application programs) sitting at the edge of the Internet. And we use host and end system interchangeably, that is host=e

Visual Basic快捷教程——流程控制

美籍匈牙利数学家冯·诺依曼于1946年提出"程序存储,顺序执行"的观念,为现代计算机奠定了重要基础.这一观点认为:应该把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存.电子计算机的数制宜采用二进制:计算机应该按照程序顺序执行.所以现在开发人员在编写的程序代码时,其实都隐含地认为计算机将来会一行一行按顺序来执行这些指令.但是在顺序执行的过程中,有时我们希望计算机根据条件判断来选择性地执行(或者不执行)一些代码--这时就需要用到选择结构(或称分支结构).另外一些时候,我们希

Nginx下配置Http Basic Auth保护目录

nginx basic auth指令 语法:     auth_basic string | off;默认值:     auth_basic off;配置段:     http, server, location, limit_except 默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示. 语法:     auth_basic_user_file file;默认值:     -配置段:     http, server, location, limit_except 1. 下载这个

NHibernate官方文档中文版--基础ORM(Basic O/R Mapping)

映射声明 对象/关系映射在XML文件中配置.mapping文件这样设计是为了使它可读性强并且可修改.mapping语言是以对象为中心,意味着mapping是围绕着持久化类声明来建立的,而不是围绕数据表. 要注意的是,尽管很多NHibernate使用者选择手动定义XML文件,但是仍然有很多工具可以用来生成mapping文件,包括NHibernate.Mapping.Attributes 库和各种各样基于模板的代码生成工具(CodeSmith, MyGeneration). 让我们用一个mappin

QML学习【一】Basic Types

  QML入门教程(1) QML是什么? QML是一种描述性的脚本语言,文件格式以.qml结尾.语法格式非常像CSS(参考后文具体例子),但又支持javacript形式的编程控制.它结合了QtDesigner UI和QtScript的优点.QtDesigner可以设计出.ui界面文件,但是不支持和Qt原生C++代码的交互.QtScript可以和Qt原生代码进行交互,但是有一个缺点,如果要在脚本中创建一个继承于QObject的图形对象非常不方便,只能在Qt代码中创建图形对象,然后从 QtScrip

ios开发使用Basic Auth 认证方式

我们app的开发通常有2种认证方式   一种是Basic Auth,一种是OAuth:现在普遍还是使用OAuth的多,而使用Basic Auth认证的少,正好呢我今天给大家介绍的就是使用的比较少的Badic Auth认证方式,这种认证方式开发和调试简单, 没有复杂的页面跳转逻辑和交互过程,更利于发起方控制.然而缺点就是安全性更低,不过也没事,我们可以使用https安全加密协议,这样才更安全. 我使用的是AFNetworking发送的网络请求,因此我们用Basic Auth认证方式就不能再使用AF