关于多线程的2个小验证
Posted 小胡的技术之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于多线程的2个小验证相关的知识,希望对你有一定的参考价值。
前言
1.验证synchronized(非this对象)与同步synchronized方法是异步调用的效果
2.验证多个线程调用同一个方法是随机的
代码实例
Service.java
ThreadA.java
ThreadB.java
Run.java
结果:
由于对象监视器不同,所以运行的结果就是异步的
验证多个线程调用同一个方法是随机的
MyList.java
MyThreadA.java
MyThreadB.java
Test.java
结果:
从运行的结果看,同步块中的代码是同步打印的,当前线程的“执行”和“退出”是成对出现的,但是线程A和线程B的执行确是异步的,这个就是有可能出现脏读的环境。
以上是关于关于多线程的2个小验证的主要内容,如果未能解决你的问题,请参考以下文章
关于Java的多线程Runnable的个人理解(基础,不讲概念)