- 浏览: 11486 次
最新评论
文章列表
http://www.cnblogs.com/samqiu/p/4279836.html
这个博客已经很仔细的介绍了BlockingQueue.
我现在修改几个方法来说明BlockingQueue几个方法的区别。
1。修改等待时间
消费者等待时间非常短,没有产品加到队列
String data = queue.poll(20, TimeUnit.MILLISECONDS);
打印出的消息:
引用启动生产者线程!
正在生产数据...
启动消费者线程!
启动生产者线程!
正在生产数据...
启动生产者线程!
正在生产数据...
正从队列获取数据...
退出消费者线程!
将数据:data:1放入 ...
http://www.cnblogs.com/samqiu/p/4279836.html
这个博客已经很仔细的介绍了BlockingQueue.
我现在修改几个方法来说明BlockingQueue几个方法的区别。
1。修改等待时间
消费者等待时间非常短,没有产品加到队列
String data = queue.poll(20, TimeUnit.MILLISECONDS);
打印出的消息:
引用启动生产者线程!
正在生产数据...
启动消费者线程!
启动生产者线程!
正在生产数据...
启动生产者线程!
正在生产数据...
正从队列获取数据...
退出消费者线程!
将数据:data:1放入 ...
转载地址:http://www.ibm.com/developerworks/cn/java/l-threadPool/#icomments
1. 任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。
/**
* <p>Title: </p>
* <p>Description: use to test thread pool</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
*
* ...
测试类
public class PerGenTest {
public static void main(String[] args) {
ArrayList<TestClass> list = new ArrayList<TestClass>();
String i = "";
while(true){
i = i + "a";
TestClass test = new TestClass();
test.setName(i);
list.add(test) ...
java中一些常用的英语
- 博客分类:
- java
abstract (关键字
) 抽象
['.bstr.kt]
access vt.访问,存取
['.kses]'(n.入口,使用权)
algorithm n.算法
['.lg.riem]
Annotation [java]代码注释 [.n.u'tei..n]
anonymous adj.匿名的[.'n.nim.s]'(反义:directly adv.直接地,立即[di'rektli, dai'rektli])
apply v.应用,适用 [.'plai]
application n.应用,应用程序
[,.pli'kei..n]' (application ...
String a = "ab";
String b = new String("ab");
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(b.intern() == a);
System.out.println(a.intern() == b);
打印结果:
false
true
true
false
new String不会去String常量迟中找已有的字符串。string.intern()方 ...
select结果作为新表
- 博客分类:
- SQL
SELECT A FROM (SELECT A,B FROM TABLE) T where A='XXXX';
select name, count from (select b.name name, sum(c.count) count from websites b inner join access_log c on b.id = c.site_id
group by c.site_id) d where d.count > 500
select b.name, sum(c.count) from websites b inner join access_log c on b.id = c.site_id
group by c.site_id having sum(c.count) > 500
http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html
什么是注解(Annotation):
Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。
Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。从某些方面看,annotatio ...
竞争锁是造成多线程应用程序性能瓶颈的主要原因
区分竞争锁和非竞争锁对性能的影响非常重要。如果一个锁自始至终只被一个线程使用,那么 JVM 有能力优化它带来的绝大部分损耗。如果一个锁被多个线程使用过,但是在任意 ...
SUN/Oracle 的 HotSpot JVM 又把新生代进一步划分为 3 个区域:
1. 一个相对大点的区域,称为“伊甸园区 (Eden)”;
2. 两个相对小点的区域称为“From 幸存区 (survivor)” 和“To 幸存区 (survivor)”。
按照规定,新对象会首先分配在 Eden 中 (如果新对象过大,会直接分配在老年代中)。在 GC 中,Eden 中的对象会被移动到 survivor 中,直至对象满足一定的年纪 (定义为熬过 GC 的次数),会被移动到老年代。
新生代的 GC 使用复制算法:
1. 在 GC 前 To 幸存区 (survivor) 保持清空
2. Ed ...
HotSpot JVM 的并发标记清理收集器 (CMS 收集器) 的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如 web 应用。
CMS 收集器的过程
CMS 收集器的 GC 周期由 6 个阶段组成。其中 4 个阶段 (名字以 Concurrent 开始的) 与实际的应用程序是并发执行的,而其他 2 个阶段需要暂停应用程序线程。
1.初始标记:为了收集应用程序的对象引用需要暂停应用程序线程,该阶段完成后,应用程序线程再次启动。
2.并发标记:从第一阶段收集到的对象引用开始,遍历所有其他的对象引用。
3.并发预清理:改变当运行第二阶段时,由应用程序线程产生的对象引用,以 ...
http://java-mzd.iteye.com/blog/838514
JIT(just-in-time compilation,即时编译)指计算机领域里,即时编译也被称为动态翻译(dynamic translation),是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术。
参数-Xcomp执行(优先jit编译器)
使用参数-Xint(忽略jit编译器)
更详细的解释在原文中
[size=medium]http://swiftlet.net/archives/639
1. 定义
JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。
JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开 ...