- 博客(3)
- 收藏
- 关注
原创 Java线程间的通信之消费者和生产者
Java官方的API提供了几种线程间的通信方法在经典的生产者和消费者模式中,一般可以有三种实现方式1、suspend(挂起)和resume(唤醒),此套方法官方已经弃用,原因是容易出现死锁 从而导致永久挂起,调用时需要注意先后顺序2、wait(挂起)和notify(唤醒),在使用时必须在同步代码块中使用,并且需要注意先后顺序, 反正会出现永久等待的问题3、p...
2019-03-04 16:20:53
122
原创 Java线程的六种状态
new:刚被创建出来,且没有被运行的线程runnable:可运行的状态,正在等待CPU的调度blocked:锁的状态,阻塞中,等待监视器的锁定,同步关键字synchronized会导致没有在运行的线程处于此状态waiting:等待状态,调用不带超时的方法会出现此状态,如Object.wait()、Thread.join()、LockSupport.park()Timed waiti...
2019-03-01 20:21:03
134
原创 Java代码是如何被运行的
Java文件会先被编译成.class文件,class文件是一个特殊的16进制的,且以0Xcafebabe开头的特殊文件内容严格按照Java的格式进行书写,jvm对这个文件可以直接读取,并运行其中的代码人类阅读可以借助工具进行查看,而jvm运行时会对照编码表一一运行,编码表入下图所示:根据这个字节编码表,Java虚拟机就可以运行被编译好的class文件...
2019-03-01 19:49:05
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人