java - java 多线程循环法

标签 java multithreading

我必须使用线程在java中创建一个应用程序,但我对java中的多线程编程很陌生。应用程序将有许多任务要做,其中每个任务应由一个线程运行。然后我将在java中实现循环算法来调度线程工作。

我不确定它是否正常工作,但这是我到目前为止所做的代码(具有 8 个任务的应用程序)。如果现在可以了我应该实现RR调度算法,我该怎么做?它应该在新文件中还是在主方法中实现?

public class Application extends Thread {
    public class Task1 extends Thread {
        @Override
        public void run() {
            //task 1
        }
    }

    public class Task2 extends Thread {
        @Override
        public void run() {
            //task2
        }
    }

    public class Task3 extends Thread {
        public void run(){
            //task3
        }
    }

    public class Task4 extends Thread {
        public void run(){
            //task4
        }
    }

    public class Task5 extends Thread {
        public void run(){
            //task5
        }
    }

    public class Task6 extends Thread {
        public void run(){
            //task6
        }
    }

    public class Task7 extends Thread {
        public void run(){
            //task7
        }
    }

    public class Task8 extends Thread {
        public void run(){
            //task8
        }
    }
    public static void main(String[] args) {
        Application a=new Application();
        Task1 t1=a.new Task1();
        //etc
    }
}

最佳答案

必须实现自己的日程安排吗?您可以改用 Executor并让它来安排你的工作?来自 Javadoc:

An object that executes submitted Runnable tasks. This interface provides a way of decoupling task submission from the mechanics of how each task will be run, including details of thread use, scheduling, etc.

关于java - java 多线程循环法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20818073/

相关文章:

java - 将包含 boolean 值的文本文件作为对象读取到数组列表中

java - Play框架-测试POST Controller 方法

java - 带有 ServletContextListener 的线程池

java - 并发变量修改 : cannot fully understand this example

java - Java将线程缓存刷新到实际副本时

java - 由于反射导致的 Hibernate 和 Spring 的性能开销

java - 如何在 ZipEntry 中书写汉字?

java.io.IOException : More data recieved than is allowed by the channel data window

java - Spring运行独立线程

java - JUnit TeaDown() 在我的测试完成之前完成执行(使用自定义运行程序)