如何在java中管理多线程?

时间:2015-12-07 10:19:11

标签: java multithreading java-native-interface osb

I have a Java function that is multi-threaded by OSB (oracle service BUs).      This Java function calling three different native function through JNI. How to      call     these three function in such a way that :
  1. 第一个功能(设置系统)将只调用第一个线程。
  2. 第二个功能将由所有线程调用。
  3. 第3个功能(清理系统)只能通过最后一个线程调用。 原生函数

    设置();

    计算();

    清理();

    JNI功能

    JNIEXPORT jvoid JNICALL Java_taxcalc_setup

    JNIEXPORT jstring JNICALL Java_taxcalc_calculation

    JNIEXPORT jvoid JNICALL Java_taxcalc_cleanup

    Java代码

    public class taxcalc {

    private static native void setup();
    
    private static native String calculation(String input[],double y,int);
    
    private static native void cleanup();
    
    static{
         System.loadLibrary("CJavaInterface_64");
         taxcalc.setup();
         taxcalc.cleanup();
       }
    

    public static String taxoutput(String [] args){

    String array =“”;

    for(int j = 0; j <= 5; j ++)

    {

    input[j]=args[j];
    

    }

    双y;

    int BilledLines;

    Y = Double.parseDouble(参数[6]);

    BilledLines =的Integer.parseInt(参数[7]);

    阵列= taxcalc.calculation(输入,Y,BilledLines,);

    返回数组;

    }

    public static void main(String [] args){

            System.out.println(taxoutput(args));
    
    }
    

    }

    taxouput函数是从osb.now多线程的,我想调用setup()和
    cleanup()的方式是,setup()应该仅为第一个线程和 cleanup()应该只调用最后一个线程。

1 个答案:

答案 0 :(得分:0)

从代码中看,您需要使用本机函数进行初始化和清理。这可以使用java多线程完成,但我首先要注意OSB中的回调事件,您可以从中调用setup()和cleanup()方法。这样它会更清洁。