簡體   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