0

当我们在多线程环境中运行 SmartXLS 时,我们一直看到它出现问题,有人看到问题吗?我们正在使用 java 1.7 SmartXLS 4.6

 java.lang.Thread.State: BLOCKED
    at com.smartxls.a.aj.a(SourceFile:44)
    - waiting to lock <6521da27> (a com.smartxls.a.ai$a) owned by "GS-jobListenerPollingContainer-3" t@70
    at com.smartxls.a.aj.a(SourceFile:38)
    at com.smartxls.a.aj.a(SourceFile:28)
    at com.smartxls.a.de.a(SourceFile:173)
    at com.smartxls.a.de.a(SourceFile:97)
    at com.smartxls.a.y.T(SourceFile:1598)
    at com.smartxls.a.y.Q(SourceFile:1340)
    at com.smartxls.a.bq.a(SourceFile:391)
    at com.smartxls.a.h.b(SourceFile:1220)
    at com.smartxls.a.h.a(SourceFile:279)
    at com.smartxls.ss.af.f(SourceFile:2009)
    at com.smartxls.ss.af.a(SourceFile:2635)
    at com.smartxls.ss.af.b(SourceFile:2673)
    at com.smartxls.ss.af.a(SourceFile:1181)
    at com.smartxls.ss.af.a(SourceFile:1198)
    at com.smartxls.ss.aj.a(SourceFile:7884)
    at com.smartxls.ss.aj.a(SourceFile:7874)
    at com.smartxls.WorkBook.write(SourceFile:2363)
4

1 回答 1

0

您应该使用 getLock/releaseLock 来同步后台线程计算。

            try
            {
                workbook.getLock();
                workbook.read(...);
                ...
                workbook.write(...);
            }
            finally
            {
                workbook.releaseLock();
            }
于 2018-04-13T00:16:28.033 回答