程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Flink-并发面试题(Syncnized 和 Lock)-输出什么信息?

balukai 2025-03-18 10:09:24 文章精选 5 ℃

1、介绍

在锁相关的面试题中,需手动或者自动的释放锁,也就是关键字:Syncnized 和 Lock得应用。

那下面这个程序输出什么信息了?请说出你的结果,并说明为什么?

LockAndSyncnizedExample.java

public class LockAndSyncnizedExample {


  public synchronized void add(){
    add();
   }


  public static void main(String[] args) {


    new LockAndSyncnizedExample().add();
   }
  }

2、输出结果

Exception in thread "main" java.lang.StackOverflowError
  at cn.juc.lock.LockAndSyncnizedExample.add(LockAndSyncnizedExample.java:7)
  at cn.juc.lock.LockAndSyncnizedExample.add(LockAndSyncnizedExample.java:7)
  at cn.juc.lock.LockAndSyncnizedExample.add(LockAndSyncnizedExample.java:7)
  at cn.juc.lock.LockAndSyncnizedExample.add(LockAndSyncnizedExample.java:7)
  at cn.juc.lock.LockAndSyncnizedExample.add(LockAndSyncnizedExample.java:7)
  at cn.juc.lock.LockAndSyncnizedExample.add(LockAndSyncnizedExample.java:7)
  Process finished with exit code 1

3、为什么?

Stack类表示一个后进先出(LIFO)的对象堆栈。它通过在Vector类上扩展五个操作,允许将一个向量视为堆栈。提供了通常的push和pop操作,以及一个用于查看堆栈顶部项的方法、一个用于测试堆栈是否为空的方法,以及一个用于在堆栈中搜索项并发现它距离顶部有多远的方法。

当首次创建一个堆栈时,它不包含任何项。Deque接口及其实现提供了一个更完整和一致的LIFO堆栈操作集,应优先使用该接口和其实现类。

答案:



死锁-导致方法持续压栈溢出抛出异常。(方法的调用,就是压栈出栈的操作)


你学了吗?

最近发表
标签列表