Java并发编程: 线程池管理案例

原创 今天药忘吃喽~ 2024-12-08 16:33 135阅读 0赞

线程池是Java并发编程中的一个重要工具,它能够有效地管理和复用线程。下面我们将通过一个简单的线程池管理案例来理解它的使用。

案例:生产订单

  1. 创建订单类

    1. public class Order {
    2. private String id;
    3. private String product;
    4. // getters and setters
    5. }
  2. 创建生产订单的逻辑类(例如OrderProducer):
    ```java
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;

public class OrderProducer implements Runnable {
private final List orders = new ArrayList<>();

  1. public void addOrder(Order order) {
  2. orders.add(order);
  3. }
  4. @Override
  5. public void run() {
  6. for (Order order : orders) {
  7. // 生产订单的逻辑,例如发送邮件等
  8. System.out.println("Processing Order: " + order.getId());
  9. // 模拟耗时操作,以展示线程池如何管理并发
  10. try {
  11. Thread.sleep(1000);
  12. } catch (InterruptedException e) {
  13. e.printStackTrace();
  14. }
  15. }
  16. }

}

  1. 3. **创建线程池**(例如`FixedThreadPool`,线程数固定):
  2. ```java
  3. ExecutorService executor = Executors.newFixedThreadPool(5); // 创建包含5个线程的线程池
  1. 生产订单并提交给线程池处理
    ```java
    OrderProducer producer = new OrderProducer();
    // 添加一些订单到producer中
    producer.addOrder(new Order(id: “1”, product: “Product A”)));

for (Order order : producer.orders) {
executor.execute(producer); // 将order提交给线程池执行
}

  1. 5. **关闭线程池**:
  2. ```java
  3. executor.shutdown(); // 关闭线程池,等待所有任务完成或超时

通过上述案例,你可以看到线程池是如何管理和复用线程的,这对于提高程序并发性能非常有帮助。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读