1.Eclipse启动的时候,会启动一个JVM来运行eclipse(因为Eclipse是Java代码实现的)

2.Eclipse启动一个带main的主类的时候,会单独启动一个JVM来运行他。

3.Ecpilse启动多个带main的主类的时候,每个类都会有一个JVM。

class 1:

        public class VectorTest1 {
Vector<String []> v=new Vector<String []>(100); //
///*
// * ConcurrentLinkedQueue是“线程安全”的队列,而LinkedList是非线程安全的。
// *
// * 下面是“多个线程同时操作并且遍历queue”的示例
// * (01) 当queue是ConcurrentLinkedQueue对象时,程序能正常运行。
// * (02) 当queue是LinkedList对象时,程序会产生ConcurrentModificationException异常。
// * // TODO: queue是LinkedList对象时,程序会出错。
//private static Queue<String> queue = new LinkedList<String>();
public static Queue<String> queue = new ConcurrentLinkedQueue<String>(); public static void main(String[] args){
for(int i=0;i<1000;i++) {
queue.add("job"+i+"'s key value timestamp");
System.out.println(i);
}
}

class 2:

```

public class FixedThreadExecutorTest {

public static void createPoolAndTread() {
ScheduledExecutorService pool = Executors.newScheduledThreadPool(5);
pool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
if(!VectorTest.queue.isEmpty())
System.out.println(Thread.currentThread().getName()+" Send message to graphite "+VectorTest.queue.poll());
else {
System.out.println("No Graphite message to send !!");
}
}
},0, 10, TimeUnit.MILLISECONDS);
} public static void main(String[] args) throws InterruptedException {
VectorTest.start();
createPoolAndTread();
}

}


class1和class2同时启动,我们可以发现,class2的进程,不会获得ConcurrentLinkedQueue的任何信息。说明不是在同一个jvm。

Eclipse启动JVM机制的更多相关文章

  1. Eclipse寻找JVM的机制

    Eclipse寻找JVM的机制 查看当前用了哪个jvm的方法: Help->About Eclipse -> Installation Details ->Configuration ...

  2. Eclipse寻找JVM(JRE)的顺序机制

    http://developer.51cto.com/art/200907/135271.htm Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境.本文将简单谈谈Eclips ...

  3. JVM参数调优:Eclipse启动实践

    本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java ...

  4. 指定eclipse启动使用的JVM

    不同eclispe对运行时要求不一样,而一台电脑只能同时使用一个运行时,当多个要求不同版本jvm的eclipse需要在一台电脑工作时,需要手动指定eclipse启动使用的jvm. [eclipse-j ...

  5. 在执行Java命令或eclipse启动程序,提示报错’jvm.cfg无法找到’的解决办法

    一.问题背景 昨天debug代码的时候,突然发现无法启动程序了.每次启动程序的时候均报如下错误:(回家以后重现了下这个问题.发现不同电脑,所在的lib下的文件夹不一样,应该和jdk安装时硬件的情况有关 ...

  6. 浅谈Eclipse寻找JVM(JRE)的顺序机制(转)

    转自:http://blog.csdn.net/teedry/article/details/6666850 Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境.        ...

  7. 关于Eclipse启动报错,jvm版本不匹配的问题

    前几天重新下了个eclipse,eclipse需要java环境才能运行起来,我当时电脑上自己装了jdk1.8,然后直接运行新下载的eclipse,说我的jvm版本是1.6,但是我不记得安装过1.6的了 ...

  8. JVM 调优之 Eclipse 启动调优实战

    本文是我12年在学习<深入理解Java虚拟机:JVM高级特性与最佳实践>时,做的一个 JVM 简单调优实战笔记,版本都有些过时,不过调优思路和过程还是可以分享给大家参考的. 环境基础配置 ...

  9. 增加eclipse启动的Tomcat内存的

    JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能. 如何设置Tomcat的JVM内存大小 Tomcat本身不能直接在计算机上运行 ...

随机推荐

  1. react大纲

    课程大纲: https://miaov.com/index.php/news/newsDetail/nid/263  原文件 Npm 基本使用 切换镜像, 国内的网络访问 npm 服务器可能比较慢, ...

  2. 移动前端 HTML5 head

    移动前端不得不了解的HTML5 head 头标签(2016最新版) 发表于 2016年10月20日 by 愚人码头 被浏览 875 次 小编推荐:掘金是一个高质量的技术社区,从 ECMAScript ...

  3. UOJ #218. 【UNR #1】火车管理

    Description Solution 实际上添加问题就是一个线段树区间覆盖问题,打标记就好 对于弹栈操作比较难搞,实际上也就是一个历史查询,我们不需要保存栈中的每一个元素,我们通过查找历史状态就可 ...

  4. php中cookie的操作

    php设置和获取cookie 创建cookie setcookie('mycookie','value',time()+86400);//参数3 cookie过期时间//函数原型:int setcoo ...

  5. .NET的EF框架中:在应用程序配置文件中找不到名为“”的连接字符串问题

    今天在使用EF Code First框架时,当把模型都定义好了,想通过程序包管理控制台利用enable-migrations –force来生成数据库表的时候报错了,如下: 找不到连接字符串,但是我仔 ...

  6. [android] 练习使用ListView(二)

    主要练习异步任务和LruCache缓存 package com.android.test; import java.io.InputStream; import java.net.HttpURLCon ...

  7. rabbit的fanout扇形交换机

    rabbit引入交换机概念. 交换机与生产者绑定. 队列与消费者绑定. 队列又与交换机绑定. 扇形交换机是  fanout类型的. 类似于其他消息中间件的 topic.一对多(生产者推送消息到指定交换 ...

  8. python7

    字典-dict     字典也是一种组合数据,没有顺序的组合数据,数据以键值对的方式存在 字典的定义     1.创建空字符串         变量 = {} 或者 变量 = dict()     2 ...

  9. Spring课程 Spring入门篇 5-7 advisors

    1 简析 1.1 advisor简析(这个不太明白,后续再看吧) 2 代码演练 2.1 环绕通知的综合应用(代码和视频对不上,慕课网讲的本身有问题)       1 简析 1.1 advisor简析( ...

  10. openMP编程(上篇)之并行程序设计

    openMP简介 openMP是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的. 当计算机升级到多核时,程序中创建的线程数量需要随CPU核数变化,如在CPU核数超过线程数 ...