猿问

Java如何实现一个方法只能被同一个线程调用一次?

如题。Java 如何实现一个方法只能被同一个线程调用一次 ,同一个线程调用第二次的时候可以抛异常。

潇潇雨雨
浏览 788回答 2
2回答

守候你守候我

Thread.getCurrentThread.getId()

慕勒3428872

自定义一个 Thread 类在自定义的 Thread 上添加一个 boolean 成员用于判断 例子 public class Main{public static void main(String[] args) { new MyThread(new Runnable() { @Override public void run() { test(); test(); test(); test(); } }).start(); } public static void test() { Thread t = Thread.currentThread(); if ( !(t instanceof MyThread) || ((MyThread)t).isTestInvoked() ) return ; System.out.println("Method test invoked !"); } public static class MyThread extends Thread { public MyThread(Runnable r) { super(r); } public MyThread() { super(); } public boolean isTestInvoked() { boolean result = methodTestInvoked; methodTestInvoked = true; return result; } private boolean methodTestInvoked = false; } } 运行结果Method test invoked ! 其他 也可以用 ThreadLocal 解决
随时随地看视频慕课网APP

相关分类

Java
我要回答