Метод Run не работает внутри ForkJoinTask

У меня есть подкласс RecursiveTask который содержит Runnable объект и должен выполнить его. Проблема в том, что код внутри метода run никогда не достигается, хотя я использую ForkJoinPool.execute чтобы не блокировать основной поток.

 public class test {

    public static void main(String[] args) {
        Runnable r = new Runnable() {

            @Override
            public void run() {
                Display.getDefault().syncExec(new Runnable() {

                    @Override
                    public void run() {
                        System.out.println("lo");
                    }

                });

            }
        };

        ATLockTask t = new ATLockTask(); 
        t.runnable = r;
        new ForkJoinPool().execute(t); 


    }
}


public class ATLockTask extends RecursiveTask<Object>{
    public Runnable runnable;

    @Override
    protected Object compute() {

        try {
            runnable.run();
        } catch (Exception e) {
            logger.catching(e);
        }


        return null;
    }
}

Состояние потока перед входом в syncExec

Состояния потока после входа в syncExec

0 ответов

Другие вопросы по тегам