阅读更多

6顶
1踩

编程语言
我们都知道JVM大部分源代码是用c和c++写的,现在出现了Maxine。Maxine是一个开放源代码研究开发项目:完全用Java来写虚拟机,由Sun实验室Maxine研究项目背后支持。

Maxine VM虚拟机的设计极端着重于meta-circularity (meta-circular是一个自解析的特殊例子,存在直接应用于被解析的源代码的父解析能力,不需要任何附加的分析。)

完整的Maxine源代码可以从 CVS 上下载。

6
1
评论 共 1 条 请登录后发表评论
1 楼 Wallian_hua 2008-08-17 11:37
我感觉用JAVA 写VM的话..有点...

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 进程、线程、协程、例程、过程的区别是什么?

    引自我在知乎上的回答:进程 线程 协程 例程 过程 的区别是什么? - 骏马金龙的回答 - 知乎 首先解释下程序、进程、上下文切换和线程。然后再解释协程、例程、过程。 程序 程序:源代码堆起来的东西。相当于一个一动不动没有生命的机器人。 虽然是没有生命的机器人,但是它被设计后就表示有了硬件,它的硬件决定了之后它有生命后是如何干活的 机器人有优劣,所以有些优秀的机器人干活很快,而有些机器人干活很慢...

  • 在线程中执行任务

    如果请求阻塞的时间过长,用户将认为服务器是不可用的,因为服务器看似失去了响应。根据平台的不同,实际的开销也有所不同,但线程的创建过程都会需要时间,延迟处理的请求,并且需要JVM和操作系统提供一些辅助操作。如果请求的到达率非常高且请求的处理过程是轻量级的,例如大多数服务器应用程序就是这种情况,那么为每个请求创建一个新线程将消耗大量的计算资源。在一定的范围内,增加线程可以提高系统的吞吐率,但如果超出了这个范围,再创建更多的线程只会降低程序的执行速度,并且如果过多地创建一个线程,那么整个应用程序将崩溃。

  • 创建线程任务

    文章目录@[toc]1. 创建线程1.1 通过Runnable接口创建线程1.2 通过Thread类创建线程1.3 实例说明2. 返回结果的线程任务 Callable 和 Future2.1 Callable接口2.1.1 Callable与Runnable的区别2.1.2 实现Callable接口的例子2.2 Future接口2.2.1 FutureTask3. 定时线程任务 Timer 和 T...

  • 多线程与并发编程

      认识多任务、多进程、单线程、多线程  要认识多线程就要从操作系统的原理说起。  以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率,采用批处理来批量执行任务。  现在的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如你在听歌的同时还在用MS

  • 单线程与多线程的区别

    什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程...

  • 操作系统的单多用户与单多任务的区别

    单用户单任务操作系统是指一台计算机同时只能有一个用户在使用,该用户一次只能提交一个作业,一个用户独自享用系统的全部硬件和软件资源。(如:MS-DOS、PC-DOS、CP/M) 单用户多任务操作系统是指:一台计算机同时只能有一个用户使用,但该用户一次可以运行或提交多个作业。(如:windows)(window2000和XP都可以有多个用户,为什么还是单用户呢?因为windows虽然可以设置多个

  • 嵌入式编程中的多任务与单任务,以及单任务的软件设计流程

    多任务与单任务 所谓"单任务系统"是指该系统不能支持多任务并发操作,宏观串行地执行一个任务。而多任务系统则可以宏观并行(微观上可能串行)地"同时"执行多个任务。 多任务的并发执行通常依赖于一个多任务操作系统(OS),多任务OS的核心是系统调度器,它使用任务控制块(TCB)来管理任务调度功能。TCB包括任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。调度器在任务...

  • 线程创建的过程

    用户态创建线程 无论是进程还是线程,在内核里面都是任务,管起来不是都一样吗?但是问题来了,如果两个完全一样,那为什么咱们前两节写的程序差别那么大?如果不一样,那怎么在内核里面加以区分呢? 其实,线程不是一个完全由内核实现的机制,它是由内核态和用户态合作完成的。pthread_create 不是一个系统调用,是 Glibc 库的一个函数,所以我们还要去 Glibc 里面去找线索。 果然,我们在 nptl/pthread_create.c 里面找到了这个函数。这里的参数我们应该比较熟悉了。 n...

  • Thread线程的执行流程

    线程在一定条件下,状态会发生变化。线程一共有以下几种状态: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。 3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。 4、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线

  • 任务 和 线程

    多任务 在计算中,多任务是指多个任务(进程)共享处理资源(例如,CPU)的一种方法。 在Windows XP等多任务操作系统上,可同时运行多个应用程序。 多任务指的是操作系统在计算任务之间快速切换到能力。对于用户来说,多任务就是不同的应用程序同时执行不同的操作。 CPU时钟的速度随时间逐渐加快,不仅应用程序运行速度加快,操作系统也能在应用程序之间更快地切换。 这保证了更好的整体性能。 在计算机...

  • 中国科学院大学 2015 年招收攻读硕士学位研究生入学统一考试试题科目名称:计算机学科综合(专业)

    中国科学院大学2015 年招收攻读硕士学位研究生入学统一考试试题科目名称:计算机学科综合(专业) 考生须知: 1.本试卷满分为150分,全部考试时间总计180分钟。 2.所有答案必须写在答题纸上,写在试题纸上或草稿纸上一律无效。 一、单项选择题:第1~40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项最符合试题要求。 下列数据结构中,( )是非线性数据结构。 A.栈B

  • 任务,线程,进程,多线程

    普通方法调用和多线程: 普通方法都是从main函数进入一条线执行到底,如果中间有其他的函数则将main函数压栈,跳出执行其他方法,执行完后再回到main函数,只能一条线执行到底,而多线程则是两个方法同时执行,是并列的两条线,主线程和子线程并行交替执行。 程序,进程,线程区别与联系: 任何一个进程都可以有多个线程并发执行(宏观同时,微观交替执行)。 process为进程,thread为线程。 3. 程序是静态的概念,而进程则是动态的概念,进程是系统资源分配的单位,一个进程中可以有多个线程,且一个进程至少.

  • 任务、进程和线程有何不同

    任务、进程和线程有何不同三个词中,任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。  进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独

  • 多任务与多线程

    前言前段时间,我们部门组织了学习Linux系统的安装与命令学习 Linux系统是UNIX操作系统的克隆版,是Unix的开源实现,即是一个多使用者,多任务,多层次,多线程的操作系统。对于这个概念,有好多不理解的概念,首先就是多任务与多线程,那么到底什么是多任务与多线程呢?通过各种查阅,下面说一下我的简单理解。多任务多任务指的是一台电脑上可同时运行多个应用程序(也叫多个进程),是一种多个任务共享处理资

  • 如何通过多线程执行单个任务?

    如果必须由多个线程执行单个任务,则只有通过run()方法。例如: 由多个线程执行单个任务的程序。 package com.yiibai; class TestMultitasking1 extends Thread { public void run() { System.out.println("task one"); } public stati...

  • 作业、任务、进程、线程的区别

    看操作系统基础就知道了的,我以前随便翻来看了看记得不是很清楚大概意思知道 作业:最早出现在批处理系统中,指的是用户向系统提交的一项工作的基本单位,是用户在一次事务处理或计算过程中要求计算机所做的工作的和 任务,简单的说就是用户要求计算机所做的一项工作,有时候进程也叫做任务这是在多道系统中而言的 进程是程序的一次动态执行,是程序代码在内存中的一个映象,是程序代码对数据结构的一次动态的操作过程...

  • Multi-task Learning

    单任务学习:一次只学习一个任务(task),大部分的机器学习任务都属于单任务学习 多任务学习:把多个相关(related)的任务放在一起学习,同时学习多个任务。 多任务学习产生的原因? 现在大多数机器学习任务都是单任务学习。对于复杂的问题,也可以分解为简单且相互独立的子问题来单独解决,然后再合并结果,得到最初复杂问题的结果。这样做看似合理,其实是不正确的,因为现实世界中很多问题不能分解为一个一个独立的子问题,即使可以分解,各个子问题之间也是相互关联的,通过一些共享因素或共享表示(share repres.

  • Java线程任务 创建一个单独的任务线程并提交到线程池中执行 案例

    awaitTermination() 作用即: 阻塞,直到所有任务在 shutdown 请求后完成执行,或发生超时,或当前线程中断,以先发生的为准。在未来的某个时间执行给定的命令或任务,可能在一个新的线程中执行,也可能在一个线程池中执行,或在调用的线程中执行,这由 Executor 的实现决定。此时结果依旧一致 但是 main 方法没有停止运行,依旧处于运行中,添加 shutdown() 后其实任务已经停止。可见 awaitTermination() 作用与JDK 接口描述的一致 其实并不是必须的。

Global site tag (gtag.js) - Google Analytics