2.2.14内置类与同步:测试1
Posted 成功的路上总是离不开贵人的帮助,名师的指点和小人的刺激。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.2.14内置类与同步:测试1相关的知识,希望对你有一定的参考价值。
本实验测试是在内置类中有两个同步方法,但使用的却是不同的锁,打印结果也是异步的
package com.cky.bean; /** * Created by edison on 2017/12/9. */ public class OutClass { static class Inner { public void method1(){ synchronized ("其他的锁") { for (int i = 0; i <= 10; i++) { System.out.println(Thread.currentThread().getName() +" i="+i); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } public synchronized void method2() { for (int i = 11; i <=20 ; i++) { System.out.println(Thread.currentThread().getName() + " i="+i); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
package com.cky.bean; /** * Created by edison on 2017/12/9. */ public class Test2 { public static void main(String[] args) { OutClass.Inner inner = new OutClass.Inner(); Thread t1 = new Thread(new Runnable() { @Override public void run() { inner.method1(); } }, "A"); Thread t2 = new Thread(new Runnable() { @Override public void run() { inner.method2(); } }, "B"); t1.start(); t2.start(); } }
B i=11 A i=0 B i=12 A i=1 B i=13 A i=2 B i=14 A i=3 B i=15 A i=4 B i=16
由于持有不同的对象监视器,所以打印结果就是乱序的。
以上是关于2.2.14内置类与同步:测试1的主要内容,如果未能解决你的问题,请参考以下文章
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段
[工作积累] UE4 并行渲染的同步 - Sync between FParallelCommandListSet & FRHICommandListImmediate calls(代码片段