Gunakan Set untuk menyimpan ID Thread yang telah memanggil kaedah ini Sebelum memasuki kaedah, tentukan dahulu sama ada ID thread semasa sudah disertakan dalam Set:
private final Set<Long> THREADS = new HashSet<>();
public void someMethod () {
if (THREADS.contains(Thread.currentThread().getId())) {
throw new RuntimeException("该线程不能再调用这个方法");
}
THREADS.add(Thread.currentThread().getId());
// 方法内容
}
Gunakan Set untuk menyimpan ID Thread yang telah memanggil kaedah ini Sebelum memasuki kaedah, tentukan dahulu sama ada ID thread semasa sudah disertakan dalam Set:
Thread.getCurrentThread.getId()
Sesuaikan kelas Thread
Tambahkan ahli boolean pada Thread tersuai untuk pertimbangan
Contoh
Utama kelas awam
{
utama kekosongan statik awam(String[] args)
}
Jalankan keputusan
Ujian kaedah digunakan !
Lain-lain
Anda juga boleh menggunakan ThreadLocal untuk menyelesaikannya