synchronized

synchronized

 package com.tester;

public class Thread3 {

    class Inner {

        private void m4t1() {

            int i = 5;

            while (i– > 0) {

                System.out.println(Thread.currentThread().getName()

                        + ” : Inner.m4t1()=” + i);

                try {

                    Thread.sleep(500);

                } catch (InterruptedException ie) {

                }

            }

        }

        private void m4t2() {

            int i = 5;

            while (i– > 0) {

                System.out.println(Thread.currentThread().getName()

                        + ” : Inner.m4t2()=” + i);

                try {

                    Thread.sleep(500);

                } catch (InterruptedException ie) {

                }

            }

        }

//会同步,同一个对象只有一把锁

        // private synchronized void m4t2() {

        // int i = 5;

        // while (i– > 0) {

        // System.out.println(Thread.currentThread().getName()

        // + ” : Inner.m4t2()=” + i);

        // try {

        // Thread.sleep(500);

        // } catch (InterruptedException ie) {

        // }

        // }

        // }

    }

    private void m4t1(Inner inner) {

        synchronized (inner) { // 使用对象锁

            inner.m4t1();

        }

    }

    private void m4t2(Inner inner) {

        inner.m4t2();

    }

    // 不会同步,因为锁的对象不同

//    private synchronized void m4t2(Inner inner) {

//        inner.m4t2();

//    }

    public static void main(String[] args) {

        final Thread3 myt3 = new Thread3();

        final Inner inner = myt3.new Inner();

        Thread t1 = new Thread(new Runnable() {

            public void run() {

                myt3.m4t1(inner);

            }

        }, “t1”);

        Thread t2 = new Thread(new Runnable() {

            public void run() {

                myt3.m4t2(inner);

            }

        }, “t2”);

        t1.start();

        t2.start();

    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100540.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树莓派学习-I2c通信

    树莓派学习-I2c通信前言由于之前参加了学校的飞兆杯的比赛,题目是循迹小车,由于缺乏对于ldc1314芯片使用知识以及个人的能力原因,项目并没有做出来,但是还是学习了很多东西的。其中以树莓派的I2C通信为最。一、I2C简介I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊

    2022年5月11日
    54
  • java求最大公约数

    java求最大公约数

    2021年7月15日
    59
  • cbow模型详解_drude模型的三个基本假设

    cbow模型详解_drude模型的三个基本假设初始化:初始化方法的参数包括词汇个数vocab_size和中间层的神经元个数hidden_size。首先生成两个权重(W_in和W_out),并用一些小的随机值初始化这两个权重。设置astype(‘f’),初始化将使用32位的浮点数。生成层:生成两个输入侧的MatMul层、一个输出侧的MatMul层,以及一个SoftmaxwithLoss层。保存权重和梯度:将该神经网络中使用的权重参数和梯度分别保存在列表类型的成员变量params和grads中。正向传播for.

    2025年9月27日
    3
  • 通过JiaThis API接口自定义分享功能按钮实现分享功能本地化

    通过JiaThis API接口自定义分享功能按钮实现分享功能本地化

    2021年10月9日
    39
  • YOLO v3网络结构分析

    YOLO v3网络结构分析相信阅读了YOLOv3论文的小伙伴们会发现为什么这次的论文篇幅这么少?除去参考文献就四面?Excuseme?我是下了篇假文献吧。读完后感觉内容确实不多,而且总感觉写的不够细致,很多地方都比较模糊,可能是作者想让大家去观摩他的代码吧。本人是小白,看后表示有点蒙。于是在Github上搜了大牛们基于Tensorflow搭建的YOLOv3模型进行分析(本人只接触过TF,所以就不去看caffe的源码…

    2022年6月24日
    30
  • java实现网站统计功能_网站访问量统计功能的实现

    java实现网站统计功能_网站访问量统计功能的实现实现方法 拦截器 session 存储拦截器初始化时 即在 PostConstruc 注解的 initMethod 方法中读取数据库的 isystem 对象 该对象记录了网站访问量的信息 拦截器销毁时 即在 PreDestroy 注解的 destroyMetho 方法中向数据库更新 isystem 对象 拦截器的初始化和销毁都只有在应用启动和关闭的时候才被调用 因此减少了对数据库的访问 SpringMVC 中 每一次

    2025年9月3日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号