美文网首页
1.7 同步方法与非同步方法是否可以同时被调用?

1.7 同步方法与非同步方法是否可以同时被调用?

作者: 殊胜因缘_Chris | 来源:发表于2019-03-02 22:25 被阅读0次
/**
 * This is description.
 * 同步方法与非同步方法是否可以同时被调用?
 * @author Chris Lee
 * @date 2019/3/2 11:25
 */
public class Demo{

    public synchronized void fun1() {
        System.out.println("当前线程: " + Thread.currentThread().getName() + ", fun1 start.");
        fun2();

        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("当前线程: " + Thread.currentThread().getName() + ", fun1 end.");
    }

    private void fun2() {
        System.out.println("当前线程: " + Thread.currentThread().getName() + ", fun2 start.");
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("当前线程: " + Thread.currentThread().getName() + ", fun2 end.");

    }

    public static void main(String[] args){
        Demo demo = new Demo();
        new Thread(() -> demo.fun1(), "thread 1").start();

        /*
            当前线程: thread 1, fun1 start.
            当前线程: thread 1, fun2 start.(这里就说明了同步方法fun1()可以同时调用非同步方法fun2().)
            当前线程: thread 1, fun2 end.
            当前线程: thread 1, fun1 end.
         */
    }

}
说明:
  • 本篇文章如有不正确或待改进的地方, 欢迎批评和指正, 大家一同进步, 谢谢!
  • 世上有4样东西可以让世界变得更美好, 它们是: 代码(Code), 诗(Poem), 音乐(Music), 爱(Love). 如有兴趣了解更多, 欢迎光顾"我的文集"相关文章.
资料:
  1. 学习视频: https://www.bilibili.com/video/av11076511/?p=1
  2. 参考代码: https://github.com/EduMoral/edu/tree/master/concurrent/src/yxxy
  3. 我的代码: https://github.com/ChrisLeejing/learn_concurrency.git

相关文章

  • 1.7 同步方法与非同步方法是否可以同时被调用?

    说明: 本篇文章如有不正确或待改进的地方, 欢迎批评和指正, 大家一同进步, 谢谢! 世上有4样东西可以让世界变得...

  • 同步与非同步、阻塞与非阻塞

    同步与异步、阻塞与非阻塞 同步:一个进程(或者线程)在操作 I/O 时,必须要自己去调用方法查看是否数据已经准备好...

  • 从一道面试题引申出的java锁机制原理

    面试题: 两个同步方法a、b,问在方法a中是否可以顺利访问方法b 答案:可以。 同步方法 同步方法是在方法签名上有...

  • BIO,NIO,AIO

    同步、异步、阻塞、非阻塞 同步与异步 同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。 异步...

  • 实战Java高并发程序设计笔记第一章

    相关术语 同步和异步 同步和异步用来形容一次方法调用。 同步:方法调用一旦开始,调用者必须等到方法调用结束后,才能...

  • 高并发编程基础

    1.同步方法锁定的是锁对应的其它同步方法,不影响调用非同步方法或其它锁对应的同步方法。 2.同步方法只能保证当前方...

  • 释放锁的三种情况

    1.执行完同步方法或同步代码块 2.在同步方法或同步代码块中调用wait方法 3.在同步方法或同步代码块中发生异常...

  • 并发,你需要知道的几个概念

    同步(Synchronous)和异步(Asynchronous) 同步方法调用一旦开始,调用者必须等待方法调用返回...

  • 一次同步方法的失败与原因总结

    synchronized关键字可以设置同步方法和同步块,同步方法会对调用对象this上锁,所有线程进入前都需要获取...

  • 多线程基本概念

    1.同步&异步 同步和异步通常用来形容一次方法的调用。 同步方法一旦开始调用,调用者必须等待调用方法的返回,才能继...

网友评论

      本文标题:1.7 同步方法与非同步方法是否可以同时被调用?

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