多线程原理_随机性打印结果和多线程原理_多线程内存图解

1.随机性打印结果

 

 

 os是操作系统的意思   

cpu有了两条执行的路径,cpu就有了选择 一会执行main方法  一会执行run方法

也可以说两个线程,一个main线程  一个run线程  一起请多cpu的执行权(执行时间)谁抢到了就执行对应的代码

 

2.多线程内存图解

还是之前的方法

注意看这个run调用 和start调用是不一样的

1.main压栈到最下面 一行一行执行main方法里面的代码

2.main方法的第一步创建对象,创建对象开辟堆内存存储在堆内存中(地址值赋值给变量名0x11)

3.如果mt.run();来调用 run方法被压栈进来 其实是一个单线程的程序(main线程,会先执行完run方法再执行主线程中的去其他方法)

4.如果mt.start();来调用 会开辟一个新的栈空间。执行run方法(run方法就不是在main线程执行,而是在新的栈空间执行,如果再start会再开辟一个栈空间再多一个线程)

5.对cpu而言,cpu就有了选择的权利 可以执行main方法、也可以执行两个run方法

多线程好处:多个线程互不影响 因为在不同的栈空间中,如果某一个线程挂了,不影响别的线程

 

posted @   夫君  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示