Java—线程,多线程,线程池研究之旅 two【奇葩之旅,come】

一. 前言

1. 更新慢,问题多

最近工作比较多,我还更新b站,还需要工作,所以更新较慢,勿建议哦。
文章问题较多,自己目前经验有限,一方面自己还需要更多的进步,另一方面发出去的文章我也会多次阅读,有错误就会更正,希望大家一起进步。

2. 纠正错误

第一篇文章确实有很多问题,包括线程池那个图问题比较大,我已经进行修正了(文章会自动更新哦)。
上一篇连接Java—线程,多线程,线程池研究之旅 one【奇葩之旅,come】

二. 主线程概念

1. 什么是主线程(main线程)

首先需要知道这个”头号小弟“(main线程)在java程序运行时,首先调用执行main方法。
而每个项目都要有一个主类,这个主类中必须得有main方法,用于程序的入口。

如下图:
Java程序里:
请添加图片描述
SpringBoot程序里:
请添加图片描述
不管是什么项目都会存在main的。

2. 问题

为什么main方法是程序入口?
为什么是public static void main(String[] args)而不是其他的?
为什么叫mian而不是miand或者其他的?

上面的问题,不好意思,我不会…但是第二个问题我知道,其余问题自己查吧

首先main线程是java虚拟机(大哥大!!!)调用的。
其次这可比大哥(进程)更厉害,而且不在大哥(进程)的管辖范围内。

所以main方法的权限只能设置为最大的public,方便于java虚拟机的调用。
所以java虚拟机在执行main方法时可以不用创建对象,所以该方法必须是static(静态方法),在把类加载到内存时该方法就可以提前使用了。
又由于main方法需要接收执行java命令时传递给所运行的类的参数,所以是String类型的数组参数。

这里有一个注意的点:!!!!!
对于每一个程序,main线程是由Java虚拟机创建的。
main线程首先要验证main()方法的存在,然后初始化这个类。
从JDK 6开始main方法被强制是一个独立的应用程序。

3. 注意点

3.1 一个程序可以有多个类文件,也就是可以有多个公共类(public class),
    但是每个类文件里只能有一个公共类(public class),
    但是类的里面可以有公共类,这就是内部类
3.2 每个类文件是可以有main方法,也可以没有main方法。(看来头号小弟,也有不受宠的时候啊,哈哈哈)

如下图:
请添加图片描述

通过上图可以看到:
首先类外是不允许有公共类(public class)存在的,但是可以有普通类存在。
当我们注释掉“test”类之后,是可以编译运行的。
发现公共静态类,公共类,公共类实现接口这些都可以存在,也可以被调用。
注意static方法,只能调用static修饰过的方法或者变量。
图片的最右面执行结果”大哥驾到,统统闪开“是通过类名.main调用的,无法new哦

好了,图片自己看看把,讲的也不好,代码也比较密集,为了一次性展示,这些知识点就是水一水,哈哈哈哈。

三. 主线程的调用(控制main线程)

当程序启动以后,main线程被自动创建出来。想要控制main线程,就需要获取一个main线程的引用。
我们可以通过调用currentThread()做到,这个方法是在Thread类中。这个方法返回一个当前正在被调用的线程的引用。
main线程默认优先级为5,其他剩下线程优先级都是子类继承基类。

代码就不附上了,自己搜一下就行,这个不是重点。

四. 总结

知识并非一日之寒,而需日积月累,所以学习或者了解到此就可。我们由浅入深,下一篇开始研究“多线程”,包括概念,如何调用,还有一部分源码(研究研究小弟,看看怎么剥削他们合适,嘿嘿)!!!

如果写的有误或者理解得不好,请一定告知,我会改正~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值