2013-04-29 38 views
1

我想知道如何找到當前正在運行的特定方法,如果它當前正在運行,我不想執行另一個函數。如何查找當前在java中執行的方法?

Class myclass extending someclass{ 
    private void method A(){ 

    //somthing here 
    } 

    private void method B(){ 

    //somthing here 
    } 

    private void method C(){ 
    B();//don't want to call B if A is running 

    //somthing here 
    } 
} 

布爾標誌IA不working.I不想靜態布爾flag.I正在呼叫的不同功能時的移動設備改變方向,但在四個方向上的一個我是檢查的功能是否正在運行或不。

+0

你試過設置一個標誌,它在A正在運行時被初始化,並且當A的執行超過 – gurvinder372 2013-04-29 05:18:43

+0

ya不工作時,它被重置爲空。 – Amrendra 2013-04-29 05:20:07

+0

你是什麼意思跑?你的意思是另一個線程正在運行該方法,或者簡單地說方法C是從方法A中調用的? – tbkn23 2013-04-29 05:20:30

回答

0

你可以試試這個

AtomicInteger aCount = new AtomicInteger(0); 

private void A() { 
    aCount.incrementAndGet(); 
    try { 
     // 
    } finally { 
     aCount.decrementAndGet(); 
    } 
} 

private void B() { 
} 

private void C() { 
    if (aCount.intValue() == 0) { 
     B(); 
    } 
} 
標誌
+0

我不想鎖定。 – Amrendra 2013-04-29 05:32:24

+0

然後嘗試AtomicInteger – 2013-04-29 05:37:50

相關問題