多线程与java运行环境的总结

操作系统是平台,可提供软件运行的环境,在系统上运行的软件是一个一个的进程,考虑到安全问题他们之间不能共享数据,所以是进程。线程包含在进程中,他们之间可以共享数据,

java语言有自己的运行环境它就是jreJREJVMjava虚拟机)和JDKjava开发工具包)组成,jvm又有编译器和解释器组成,编译器使.java类型的文件转换成.class类型的文件,再有解释器将.class文件由JDK中一段可以将.class文件转换成系统可以识别的字节码,然后系统在将字节码转换成计算机认识的二进制码。

虚拟机自带的几种机制:

1、垃圾回收机制,  java虚拟机自带应用程序管理内存,

system.gc()方法的作用只是唤醒垃圾回收机制,垃圾回收原理就是标记交换区收集算法,(在栈中自上而下的进行两次搜索,第一次如果有长时间不用或者以前用过的对象现在为空的就做上标记,在第二次搜索时,如果仍然是长时间不使用,或为空,就立即清理掉释放资源)在执行gc()方法后不能立即处理垃圾,他也是一个线程,而且级别是最低的,要等到抢占到CPU资源后再进行清理,真正清理垃圾的方法是finalize()方法,回收垃圾不是程序员做的,如果想清理当前对象,可以先置空,在调用System.gc()方法,最后This.finalize()方法

2、异常处理机制,lang包中throwable类的直接子类有两个,一个是exception,一个是errorexception又分为两种一个是运行期异常,一个是检查期异常,检查型异常是有编译器直接捕获,运行期异常是由解释器捕获的异常,

如果方法中出现异常不能解决就抛出,用throw 异常对象,调用方法时如果还是不能解决该异常就抛弃异常,第二次是throws,写在类名后面。

3、多线程

线程包含三种状态:

1、创建状态,由start()方法唤醒这个线程,使线程处于线程队列中

2、运行状态,当此线程抢占到CPU资源时,就会回调其中的run()方法

3、阻塞状态,阻塞状态可以有两个方法实现wait()线程将不在线程队列中知道有notify(),或者是notify()方法唤醒,

sleep()线程

还在线程队列中等待着,到指定时间到达就又会去抢占CPU资源

线程销毁:1isAlive()判断线程是否还活着

2yield()销毁

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值