美文网首页
2.2.14内置类与同步:实验1

2.2.14内置类与同步:实验1

作者: 农家男孩 | 来源:发表于2017-07-23 13:37 被阅读0次

本实验测试的案例是在内置类中有两个同步方法,但使用的却是不同的锁,打印的结果也是异步的。

/**
 * @author wuyoushan
 * @date 2017/4/28.
 */
public class OutClass {
    static class Inner{
        public void method1(){
            synchronized ("其他的锁"){
                for (int i = 1; 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();
                }
            }
        }
    }
}

/**
 * @author wuyoushan
 * @date 2017/3/20.
 */
public class Run {
    public static void main(String[] args){
        final 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=14
B i=15
A i=5
A i=6
B i=16

由于持有不同的“对象监视器”,所以打印结果就是乱序的。

摘选自 java多线程核心编程技术-2.2.14

相关文章

  • 2.2.14内置类与同步:实验1

    本实验测试的案例是在内置类中有两个同步方法,但使用的却是不同的锁,打印的结果也是异步的。 程序的运行结果为: 由于...

  • 2.2.15内置类与同步:实验2

    本实验测试同步代码块synchronized(class2)对class2上锁后,其他线程只能以同步的方式调用cl...

  • java-summery

    1、对象锁和类锁 java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码...

  • 2.2.13内置类与静态内置类

    关键字synchronized的知识点还涉及内置类的使用。 程序的运行结果为: 如果PublicClass.jav...

  • day13-笔记

    1.内置类属性 from color import Color"""内置类属性:python中每个类都拥有内置的类...

  • 面向对象(基础)

    内置类属性 内置类属性:python中每个类都拥有内置的类属性1.类._name_获取类的名字(str)2.类._...

  • python中的新式类和经典类简析

    Python新式类与经典类的区别 1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(...

  • 13面向对象2

    内置类属性 内置类属性:python中每个类都拥有内置的类属性 1.类.name:获取类的名字(字符串) 2.类....

  • JUC(一) | 同步辅助类浅谈

    Java多线程环境中存在内置锁与同步锁,内置锁即由synchronized修饰的代码,借助于对象的内置锁实现,为重...

  • js基础整理

    1 概念类 数据类型 内置函数 this的使用场景 同步和异步的区别并举例 原型和原型链 闭包 同源策略(跨域) ...

网友评论

      本文标题:2.2.14内置类与同步:实验1

      本文链接:https://www.haomeiwen.com/subject/zxcmkxtx.html