「java虚拟线程」java虚拟机线程

博主:adminadmin 2023-01-07 05:15:08 810

本篇文章给大家谈谈java虚拟线程,以及java虚拟机线程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 虚拟机线程与操作系统内核线程之间的关系

简单的讲,JVM的多线程通常是不依赖于操作系统来实现的,这一点在IBM的系统上更为常见。有些优化的JVM比如IBM的,就是使用了NativeThread机制,来达到更高的效率。

在单CPU上就能实现多线程,至于多CPU情况,要看操作系统对多CPU的支持了。

一般线程是指操作系统级别的线程,但是存在JAVA虚拟机级别的线程吗?

存在!

一般线程都是系统实现的,也就是说,在系统中有标识线程的数据结构,也就是TCB,这些线程的调度都是有操作系统管理的。

但是像Java虚拟机,或者其他的运行时库会提供自己的线程库,也就是自己实现了一个线程模型,这个对于操作系统是不可见,也就是操作系统不知道有这些线程存在,把他们当做一个完整的进程看待。这就说所谓的用户级别的线程,用户级别的线程的调度完全有创建线程的进程实现(其实就是库函数实现的)。但是进程还是受系统管理。

java虚拟机(jvm)如何实现多线程

启动一个线程用start()方法,使线程所代表的虚拟处理机处于可运行的状态,这意味着它可以有JVM(java虚拟机)来调度和执行,这并不意味着线程就会立即执行。run()方法可以产生必须退出的标志来停止一个线程。

java虚拟机能同时运行几个线程?

你应该知道一个cpu在同一时间只能运行一个线程(其他线程要么在等待,要么在休眠),jvm也一样.jvm理论上可以让足够多个线程交替运行,不信你试试下面的程序:

/*

* ThreadTest.java

*

* Created on 2006年9月12日, 下午10:58

*

*/

/**

*

* @author lanxiazhi

*/

public class ThreadTest extends Thread{

int id;

/** Creates a new instance of ThreadTest */

public ThreadTest(int id) {

this.id=id;

}

public void run(){

System.out.println("线程 "+id+" 开始.");

try {

sleep(3000+1000-id);

} catch (InterruptedException ex) {

ex.printStackTrace();

}

for(int i=0;i100;i++){

System.out.println("线程 "+id+" 打印 "+i);

}

System.out.println("线程 "+id+" ...........中止");

}

public static void main(String[] args) {

for(int i=0;i1000;i++){

new ThreadTest(i+1).start();

}

}

}

java虚拟线程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java虚拟机线程、java虚拟线程的信息别忘了在本站进行查找喔。