繁体   English   中英

如何从Java线程获取变量值

[英]how to get variable value from a java thread

我有一个线程,可以计算某些东西并生成一个二维数组。 线程完成后,我需要访问此2d数组的值。 我怎样才能做到这一点

        SwingWorker<Integer, Void> worker = new SwingWorker<Integer, Void>()
        {
            Object[][] valueMatrix = null;

            @Override
            public Integer doInBackground()
            {
                try
                {
                    valueMatrix = doChemicalSynonyms(termsArray_1, termsArray_2, mView.getSaveFilepath(), false, mView.getSheetName(), mView.getCategoryName(), mView.includePMIDs());
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                    return -1;
                }
                return 0;
            }

            @Override
            public void done()
            {
                System.out.println(valueMatrix[0][0]);
            }
        };
        worker.execute();

doChemicalSynonyms函数生成valueMatrix。 线程完成后,如何从主类访问它(类似于全局变量)

您应该做的是使用done()方法从线程中收集任何结果。 基本上,现在您正在打印第一个值,您可以将其传输到另一个线程以在其中使用它。

请注意,在EDT中调用了done() ,因此,如果需要对其进行大量操作,则需要另一个线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM