`
luccs624061082
  • 浏览: 84737 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
对于div 达到这样效果 三个可供选择的radio 点击后隐藏 显示其中一个 再次点击还原 <div class="time4" id="pressTime" > <p> <input type="radio" name="healthLogs.press" id="press" ...
nginx 安装 在虚拟机上要先安装pcre 然后是nginx 或者直接安装中文wiki上的方案安装。 输入./nginx -t 显示如下: nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/nginx.conf test is successful 表示启动成功。 ./nginx 启动服务 修改nginx.conf后执行 kill -HUP 进程号  进行服务重启。 在这里的配置是: 一台虚拟机上 192.1 ...
new Date()获得的时间格式是很难看的,例如: Wed Sep 19 15:39:00 CST 2012,这里将时间格式化,按照 long time = (new Date()).getTime(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); String date_time = df.format(new Date(time)); 这样就会按照我们习惯的 2012-09-19 15:39:00输出 当然还可以按照其他的时间格式输出 这里只有yyyy-MM-dd HH-mm-ss 其他 ...
这里先占个位子 等回公司后再发上来这段时间的总结 安装文件:apache-tomcat-7.0.27.zip jdk-6u32-linux-x64.bin mysql-5.5.15.tar 1 安装jdk 执行步奏如下: cd  install chomd 755 jdk-6u32-linux-x64.bin ./jdk-6u32-linux-x64.bin vi /etc/profie 在最后添加 export JA ...
这个问题是在开发的时候遇到的,数据库表中由于插入浮点型数据,导致输入相同的数字比如14.9 无法查询结果,当时为了使服务运行,直接在代码中减1。之后,在网上查查后,发现遇到float的精度问题的时候,即使指定为float(d, ...

将博客搬至CSDN

    博客分类:
  • java
申请ITEYE的文档迁移到CSDN中
java.util.concurrent.atmoic包定义了类,在单一变量上支持原子操作。所有的类有get和set方法,这些将在volatile变量上进行读写。即,在同一变量上set和后续的get有一个happens-before关系。原子compareAndSet 方法也有这些内存持续性功能,就像在整形原子变量上做简单的运算方法。   为了看这个包如何使用的,让我们返回原先演示线程接口的Counter方法。   class Counter {     private int c = 0;     public void increment() {         c++;     } ...
   java.util.Concurrent包定义了三类执行器接口:       1 Executor,一个简单的执行器支持启动新的任务       2 ExecutorService,Executor的子接口,增加了管理个体任务和执行器自身的生命周期的特性。       3 ScheduledExecutorService,ExecutorService的子接口,支持将来和/或者周期性任务的执行。    典型地,与Executor对象关联的变量被申明为这三类接口中的一个,而不是用一个执行器类。    The Executor Interface(执行器接口)    Executor ...
  大多数Executor的实现使用线程池,是由工作线程组成。这种线程与它执行的Runnable和回调函数分开,即单独存在,通常用来执行多任务。   使用工作线程由于线程创建减少了开销。线程对象使用大量的内存,并且在大规模应用程序中,分配和取消分配许多线程对象产生了显著的内存管理开销。   一个普通类型的线程池是大小固定的线程池。这类池有一个指定数量的线程运行。如果一个线程在它仍旧使用的时候不知怎么终止了,一个新的线程将自动替代它。任务通过一个内部队列提交给池,每当活动任务比线程多的时候,池将持有额外的任务。   固定大小线程池的重要优点是应用程序使用它完美降低(degrade grace ...
  Fork/Join框架式ExecutorService接口的实现,帮助你充分利用多处理器。它被设计成能递归的分解成更小部分工作。目标是使用所有可用的处理能力来提升你的应用的处理能力。   与其他ExecutorService实现一样,fork/join框架在一个线 ...
   java.util.concurrent包 包含了大量Java 集合框架的补充。这些是最容易分类的,通过接口集合提供:    1 BlockingQueue 阻塞队列 定义了一个先进先出的数据结构,当试图添加进一个满的队列或者从一个空的队列中获取时会阻塞或者超时。    2 ConcurrentMap 并发隐射 java.util.Map的子接口定义了有用的原子操作。这些操作移除或替代一个键-值,如果见存在,或者添加一个键-值对仅仅如果键是不存在的。使这些操作原子化有助于避免异步。ConcurrentHashMap是ConcurrentMap标准通用的实现,是一个HashMap的并发模拟 ...
  在之前的所有例子中,在一个任务被一个新的线程(被定义为Runnable对象)和和线程自身(被定义为一个线程对象)执行的两个线程有一个紧密联系。这个工作方式对于小型应用很好,但是在大规模应用程序中,从应用程序的其他部分分开县城管理和创建是很有意义的。封装这些功能的对象称为执行器。下面的子章节详细描述了执行器。   1  Executor interface (执行器接口) 定义了三类执行器对象   2  Thread Pool (线程池) 是最通用的执行器实现   3  Fork/Join (分开/联合) jdk7中的最新框架,充分利用多处理器。
   同步代码依赖一种简单的可重入锁。虽然这种锁很容易使用,但是有许多局限。许多复杂的锁形式是由java.util.concurrent.locks包支持。我们不详细解释这个包,但是了关注它最重要最基本的接口,Lock。    Lock对象的工作机制与用同步代码的隐式锁很相似。作为隐式锁,只有一个线程能一次拥有一个锁对象。所对象也支持wait/notify机制。,通过它们关联的条件对象。    锁对象超过瘾式锁的最大优点是它们能撤回试图获取一个锁。tryLock方法会立即撤回如果发现锁是不可用的或者时间超时(如果有时间限制)。lockInterruptibly 方法撤回,如果另外一个线程发了 ...
  至今,课关注低级API,从最开始已经成为java平台的部分。虽然这些APIs可以胜任非常基本的任务,但是为更多高级任务需要高级构建块。这对于大规模并发程序尤其是真的,充分利用当今的多处理器和多核系统。   在这一节,我们将看到在java平台版本5中介绍的一些高级并发特性。这些特性的大多数在新的java.util.concurrent包中实现。在java 集合框架中也有新的并发数据结构。   1 Lock Object(锁对象)支持指定许多并发应用的锁形式   2 Executors (执行器)定义了启动和管理线程的高级API。Executor 实现了由java.util.Concurre ...
  如果一个对象在创建后它的状态不可变那这个对象被认为是不可变的。对于不可变对象的极大信任使它作为一个合理的策略来创建简单信任的代码而被广泛认可。   不可变对象在并发程序中十分有用。因为它们不能改变状态,它们不会在线程争用中毁坏或者在不一致性错误中被观察。    程序通常不情愿使用不可变对象,因为他们担心创建一个新的对象的成本与适当的时候更新一个对象的成本截然相反。创建对象的影响通常被过高评估,会抵消与不可变量有关联的效率。这些由于垃圾收集而减少开销和代码消除,需要它去防止可变对象变坏。    下面的子章节演示了谁的实例是可变的并从它衍生出不可变实例的一课。这样做,它们为这种转换给出了一 ...
Global site tag (gtag.js) - Google Analytics