Java Килим Ткачество - PullRequest
       77

Java Килим Ткачество

0 голосов
/ 13 февраля 2020

Я новичок в фреймворке java Kilim и следовал некоторому коду, и у меня нет никакого представления о сложении времени компиляции / времени выполнения, и мне нужна помощь, чтобы код заработал. Я использовал kilim-2.0.2, asm-7.0, java jdk 1.8

############################################################
Task class com.kulan.kilim.Processor has either not been woven or the classpath is incorrect
############################################################
java.lang.Exception: Stack trace
    at java.lang.Thread.dumpStack(Unknown Source)
    at kilim.Task.errNotWoven(Task.java:306)
    at kilim.Task.execute(Task.java:483)
    at kilim.Task.run(Task.java:550)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Мой код

public class KilimTest {

private static final int processorCount=Runtime.getRuntime().availableProcessors()+1;

    private static CountDownLatch latch=null;
    private static Random random=new Random();
    private static int executeTimes=processorCount*100;

    public static void main(String[] args) throws Exception{
        //Weaver.main(args);
        long beginTime=System.currentTimeMillis();
        latch=new CountDownLatch(executeTimes*processorCount);
        for (int j = 0; j < processorCount; j++) {
            new Thread(new NotifyProcessorTask()).start();
        }
        latch.await();
        long endTime=System.currentTimeMillis();
        System.out.println("execute time: "+(endTime-beginTime)+" ms");
        System.exit(0);
    }



    static class NotifyProcessorTask implements Runnable{

        public void run() {
            String threadName=Thread.currentThread().getName();
            for (int i = 0; i < executeTimes; i++) {
                Mailbox<String> messages=new Mailbox<String>();
                new Processor(messages,latch).start();
                messages.putnb(threadName+String.valueOf(i));
                try {
                    Thread.sleep(random.nextInt(5));
                } 
                catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
public class Processor extends Task{

    private Random random=new Random();
    private Mailbox<String> messages;
    private CountDownLatch latch;

    public Processor(Mailbox<String> messages,CountDownLatch latch){
        this.messages=messages;
        this.latch=latch;
    }

    public void execute() throws Pausable, Exception {
        messages.get();
        int counter=0;
        while(counter<100){
            List<String> list=new ArrayList<String>();
            for (int i = 0; i < 1000; i++) {
                list.add(String.valueOf(i));
            }
            counter++;
            Task.sleep(random.nextInt(2));
        }
        latch.countDown();
        Task.exit(0);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...