小菜鸟最近在复习java的多线程执行,在做生产者与消费者来实现多线程演示时,发现notify()的执行并不是按照我想的那样。
当只有一个生产者和消费者时,线程的执行是并不是按照预想的那样,一个生产一个消费。
经过调查得知,notify()的源码注释里面表明了其取值顺序是随机的
翻译过来的意思:
notify在源码的注释中说到notify选择唤醒的线程是任意的,但是依赖于具体实现的JVM。
从此得知,JVM实现方法的不同也会造成不用的访问顺序。
小菜鸟最近在复习java的多线程执行,在做生产者与消费者来实现多线程演示时,发现notify()的执行并不是按照我想的那样。
当只有一个生产者和消费者时,线程的执行是并不是按照预想的那样,一个生产一个消费。
经过调查得知,notify()的源码注释里面表明了其取值顺序是随机的
翻译过来的意思:
notify在源码的注释中说到notify选择唤醒的线程是任意的,但是依赖于具体实现的JVM。
从此得知,JVM实现方法的不同也会造成不用的访问顺序。