多线程学习笔记四-jvm结构(stackSize的大小)

  • 创建线程对象thread,默认有一个线程名,以Thread-开头,从0开始技术 Thread-0 Thread-1 Thread-2
  • .如果在构造thread的时候没有传递runnable或者没有重写thread的run方法,该thread将不会调用任何东西,如果传递了runnable接口的实例,或者重写了thread的run方法,则会执行该方法的逻辑单元
  • 如果构造线程对象未传入ThreadGroup,Thread会默认获取父线程的ThreadGroup作为该线程的ThreadGroup,此时子线程和父线程将会在同一个ThreadGrouop

jvm结构
方法区(共享的区域,类加载的信息,常量,变量,静态变量,属于线程栈的一部分)
本地方法区(natvie方法)
程序计数器(指令交给cpu运行)
虚拟机栈(每个线程私有)栈帧
每个线程都有自己的虚拟机栈,main线程也有
栈帧:局部变量表
操作栈
动态连接 方法入口的地址。出口的地址
方法出口

可以在构造thread线程的时候设置stacksize的大小(1<<24)

public class CreateThread4 {
    private static int count;
    public static void main(String[] args) {
        Thread thread = new Thread(null, new Runnable() {
            @Override
            public void run() {
                try {
                    add(0);
                } catch (Error e) {
                    e.printStackTrace();
                    System.out.println(count);
                }
            }
            private void add(int i){
                ++count;
                add(i+1);
            }
        },"test",1<<23);
        thread.start();
    }
}

在这里插入图片描述

总结:构造thread的时候传入stacksize代表着该线程占用的stack大小,如果没有指定stacksize的大小,默认是0,0代表着忽略该参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值