zoukankan      html  css  js  c++  java
  • java线程池

      在java线程中我们学习了如何通过实现java.lang.Runnable来定义实现任务类。以及用下边这样的语句来常见一个线程。

      Runnable task = new TaskClass(task);

      new Thread(task).start();

      这样的方法对于单一的任务执行是很方便的,但是由于我们必须对每个人物都创建一个线程当有大量的任务时就不够高效了。

      线程池是管理并发执行任务个数的理想方法。java提供Executor接口来执行线程池中的任务,提供ExecutorService接口来管理和控制任务。ExecutorService是Executor的子接口。

      《interface》 java.util.concurrent.Executor

        +executor(Runnable object):void      //Executor the runnable task

      《interface》 java.util.concurrent.ExecutorService

        +shutdown() :void         //关闭执行器,但允许完成执行器中的任务。一旦关闭,他就不能接受新任务。

        +shutdownNow() :bList<Runnable>  //即使线程中还有未完成的任务也会直接关闭线程

        +isShutdown()  :boolean   //如果线程已经关闭,则返回true

        +isTerminated():boolean  //如果线程池中所有的任务已经终止,返回true

       java.util.concurrent.Executors

        +newFixedThreadPool(numberiofthreads:int):ExecutorService    //创建一个线程池,该线程池可以并发执行的线程数固定。在线程结束当前任务后,可以重用另一个任务

        +newCachedThreadPool():ExecutorService     //创建一个线程池,它可按照需要创建新的线程,但当前边创建的线程可用的时候重用他们

  • 相关阅读:
    windows向Linux服务器上传、下载,服务器内复制、移动文件
    解决:ubuntu提示E: 无法获得锁 /var/lib/dpkg/lock-frontend
    PostgreSQL安装与简单操作
    LeetCode 234.回文链表
    LeetCode 445.两数相加 II
    LeetCode 24.两两交换链表中的节点
    LeetCode 19.删除链表的倒数第 n 个节点
    LeetCode 26.删除排序数组中的重复项
    Java 程序运行机制
    String 属于基础的数据类型吗?
  • 原文地址:https://www.cnblogs.com/weiliuyby/p/8510690.html
Copyright © 2011-2022 走看看