`

java线程池 volatile修饰符

阅读更多

java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类

 

  • 如果当前线程池中的线程数目小于corePoolSize,则每来一个任务,就会创建一个线程去执行这个任务;
  • 如果当前线程池中的线程数目>=corePoolSize,则每来一个任务,会尝试将其添加到任务缓存队列当中,若添加成功,则该任务会等待空闲线程将其取出去执行;若添加失败(一般来说是任务缓存队列已满),则会尝试创建新的线程去执行这个任务;
  • 如果当前线程池中的线程数目达到maximumPoolSize,则会采取任务拒绝策略进行处理;
  • 如果线程池中的线程数量大于 corePoolSize时,如果某线程空闲时间超过keepAliveTime,线程将被终止,直至线程池中的线程数目不大于corePoolSize;如果允许为核心池中的线程设置存活时间,那么核心池中的线程空闲时间超过keepAliveTime,线程也会被终止。

 

Java通过java.util.concurrent.Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

 

 

 s

分享到:
评论

相关推荐

    这是本人学习过程中记录的一些代码!从Java基础的数据类型、修饰符、String类、IO、集合、线程等等到一些常用框架

    2. **修饰符**:Java中的访问修饰符(public、private、protected、默认),静态修饰符,final修饰符,抽象修饰符(abstract),以及synchronized和volatile等,都是控制类、方法、变量访问权限和行为的重要元素。...

    java并发编程从入门到精通

    Java中的synchronized关键字以及volatile修饰符提供了线程间的同步机制,能够保证共享资源的可见性和原子性。同时,Java并发包中的CountDownLatch、CyclicBarrier、Semaphore等同步器为线程间协作提供了强大的支持。...

    《java 并发编程实战高清PDF版》

    书中详细阐述了可见性、原子性和有序性这些概念,并通过`volatile`关键字和`final`修饰符的使用来演示它们的作用。 除了锁,Java还提供了其他同步机制,如`java.util.concurrent`包下的并发工具类。其中包括`...

    JAVA笔试题目及JAVA常考知识点总结.pdf

    - Java的访问修饰符包括public、protected、private,用于控制类、方法和变量的访问权限。 - Java支持封装、继承和多态性等面向对象的特性。 2. Java集合框架 - Java集合框架提供了一套性能优化的接口和类,用于...

    清华大学Java教程

    7. **多线程**:介绍Java中的并发编程,包括线程的创建、同步机制(如synchronized关键字和volatile关键字)、线程池以及线程通信。 8. **反射机制**:讨论Java的反射机制,如何在运行时动态获取类的信息并调用方法...

    java进阶13天资料.zip

    day03-多态、包、权限修饰符、内部类,Object类,Date类 day04-常用API、正则表达式,泛型、Collection集合API day05-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类 day06-Map集合,HashMapTreeMap,...

    java多线程并发

    即当一个线程修改了带有`volatile`修饰符的变量后,其他线程能立即看到最新的值。 - **锁**:除了内置的`synchronized`关键字之外,Java还提供了一些高级锁机制,如`ReentrantLock`等,这些锁具有更高的灵活性和更细...

    java程序员面试面试题

    这包括但不限于变量声明、数据类型(如基本类型和引用类型)、运算符、控制流(如if语句、for循环、while循环)、异常处理(try-catch-finally)、类与对象(封装、继承、多态)、接口、访问修饰符(public、private...

    清华大学java教程

    7. **多线程**:Java的并发编程,线程的创建和管理,同步机制(如synchronized关键字、volatile、Lock接口)以及线程池的使用。 8. **反射机制**:通过反射机制,程序在运行时可以动态获取类的信息并调用其方法,...

    哈尔滨工业大学Java课件

    6. **多线程编程**:Java提供了强大的并发支持,包括Thread类、Runnable接口、synchronized关键字、volatile修饰符、线程池(ExecutorService)等。课件会解释多线程的原理和并发控制策略。 7. **网络编程**:Java ...

    java方向面试宝典.pdf

    在Java中,四种访问权限修饰符分别是public、private、protected和默认(无修饰符)。public允许所有类访问,private限制在同一类内访问,protected允许同一包内及子类访问,而默认修饰符只允许同一包内的类访问。 ...

    中创JAVA笔试八套题

    此外,深入理解构造函数、this关键字、super关键字以及访问修饰符的作用也至关重要。 第三部分:数据结构与算法 Java笔试中常会考察数据结构,如数组、链表、栈、队列、树等,并结合实际问题设计算法。熟练掌握这些...

    java面试题目汇集,相当java程序员的孩纸必看

    - 掌握面向对象编程的三大特性:封装、继承和多态,理解类和对象的概念,熟悉类的构造器、访问修饰符以及抽象类和接口的使用。 2. **内存管理与垃圾回收** - 了解Java内存模型,包括堆内存、栈内存、方法区和本地...

    java面试题集合,包含各种java常见面试题型,一些是chm格式

    4. **多线程**:Java提供了丰富的多线程支持,如Thread类、Runnable接口、synchronized关键字、volatile、线程池等。面试中可能会讨论线程安全、死锁、活锁、线程通信等问题。 5. **异常处理**:Java异常处理机制...

    平安面试题目 java

    - 介绍Java中的访问修饰符(public, protected, private, default)以及它们的适用场景。 - Java中的数据类型有哪些?它们之间的转换规则是什么? - 详述Java中的异常处理机制,如何使用try-catch-finally语句块...

    java笔试题大全

    4. **多线程**:Java提供了丰富的多线程支持,如Thread类、Runnable接口、synchronized关键字、volatile变量、线程池等。理解线程同步、互斥、死锁以及并发编程模型如Future、Callable等,对于开发高并发应用至关...

    Java解惑

    例如,接口和抽象类的区别,继承、多态和封装的概念,以及如何通过访问修饰符控制代码的可见性。此外,深入理解异常处理机制,如try-catch-finally语句块,以及如何自定义异常,也是提升编程技能的关键。 其次,...

Global site tag (gtag.js) - Google Analytics