Java线程是在用户空间还是内核空间中创建的? [英] Are Java threads created in user space or kernel space?

查看:418
本文介绍了Java线程是在用户空间还是内核空间中创建的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

签出此代码

    Thread t1 = new Thread(new Runnable() {

        @Override
        public void run() 
        {
            try
            {
                System.out.println("STARTING SERVER...");
                ServerSocket s = new ServerSocket(2544);
                System.out.println("SERVER BLOCKED ON ACCEPT");
                Socket ss = s.accept();
                System.out.println("SERVER NOT BLOCKED ANYMORE");
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    });
    t1.start();



    Thread t2 = new Thread(new Runnable() {

        @Override
        public void run() 
        {
            try
            {
                while(true)
                {
                    Thread.sleep(1000);
                    System.out.println("Hello");
                }
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    });
    t2.start();

输出:

STARTING SERVER...
SERVER BLOCKED ON ACCEPT
Hello
Hello
Hello
Hello
Hello
Hello
Hello
...

Java线程应该是用户空间线程,对吗?因此,一个被阻塞的线程应该阻塞整个过程……那不是发生了什么.他们怎么了?

Java threads should be user space threads, right? So one blocked thread should block the entire process...thats not what happened. What is happening them?

推荐答案

Java线程是用户"线程,但在底层,Java虚拟机正在使用内核线程,并在每个内核线程中委派用户线程的CPU时间.它的内核线程池.有关更好的说明,请参见此问题.看来线程是特定于JVM供应商的,我的理解可能并不适用于所有JVM实现.

Java threads are "user" threads, but under the hood, the Java Virtual Machine is using kernel threads and delegating the user threads CPU time on each kernel thread in its kernel thread pool. See this question for a better explanation. It seems that threading is JVM-vendor specific, and my understanding might not hold for all JVM implementations.

这篇关于Java线程是在用户空间还是内核空间中创建的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆