`
latex
  • 浏览: 29151 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java.util.concurrent.Executors源码学习(一)

阅读更多
java.util.concurrent.Executors:

工厂类,提供了一些工具方法。支持以下各种方法:

1. 创建并返回设置有常用配置字符串的 ExecutorService 的方法。
2. 创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
3. 创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
4. 创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
5. 创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。

Executors中的重要方法:

1. ExecutorService newFixedThreadPool(int nThreads)
创建一个线程池,池中的worker线程数为指定nThreads个。处理的任务存放在一个未限定容量的LinkedBlockingQueue队列中,产生新线程的工厂为默认值。

2. ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory)
创建一个线程池,池中的worker线程数为指定nThreads个。处理的任务存放在一个未限定容量的LinkedBlockingQueue队列中,产生新线程的工厂为threadFactory。

3. ExecutorService newSingleThreadExecutor()
创建一个线程池,池中的worker线程数只有一个。处理的任务存放在一个未限定容量的LinkedBlockingQueue队列中,产生新线程的工厂为默认值。

4. ExecutorService newSingleThreadExecutor(ThreadFactory threadFactory)
创建一个线程池,池中的worker线程数只有一个。处理的任务存放在一个未限定容量的LinkedBlockingQueue队列中,产生新线程的工厂为threadFactory。
分享到:
评论

相关推荐

    java.util.concurrent 学习ppt

    Java.util.concurrent是Java 5.0引入的一个重要包,它为多线程编程提供了一组高级并发工具。这个包的设计者是Doug Lea,它的出现是JSR-166的一部分,也被称作Tiger更新。Java.util.concurrent的引入是为了解决传统...

    java.util.concurrent介绍(重要).pdf

    总之,`java.util.concurrent` 提供的工具使得并发编程变得更加容易和高效,是 Java 并发编程的基石,无论是对于初学者还是经验丰富的开发者,理解和掌握这个包都是非常重要的。通过熟练运用这些工具,开发者可以...

    借助Ehcache缓存框架实现对页面的缓存Demo

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask....

    浅谈java.util.concurrent包中的线程池和消息队列

    java.util.concurrent.Executors提供了一个java.util.concurrent.Executor接口的实现用于创建线程池。线程池技术主要解决处理器单元内多个线程执行的问题,可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐...

    java定时关机源码

    总结一下,Java定时关机源码主要涉及了Java的定时任务处理,可以使用`java.util.Timer`或`java.util.concurrent.ScheduledExecutorService`来实现。通过这两个工具,开发者可以设置在特定时间执行关闭系统的任务,...

    java定时执行方法&节拍器

    因此,在更复杂的场景下,我们通常会使用`ScheduledExecutorService`,它是`java.util.concurrent`包的一部分。下面是如何使用`ScheduledExecutorService`的例子: ```java import java.util.concurrent.Executors;...

    java在服务启动的时候启动定时器

    在Java中,我们可以使用多种库来实现这个功能,其中最常用的两个是`java.util.Timer`和`java.util.concurrent.ScheduledExecutorService`。 ## 1. `java.util.Timer` `Timer`类是Java标准库中的一个基础定时器,...

    java中的定时器,定时访问某程序等

    Java提供了多种实现定时任务的方式,其中最常用的包括`java.util.Timer`类和`java.util.concurrent.ScheduledExecutorService`接口。本篇文章将深入探讨这两种方法以及它们在实际应用中的使用。 首先,我们来看`...

    java定时执行代码.

    Java提供了多种实现定时任务的机制,这里主要介绍两种:Java.util.Timer类和java.util.concurrent.ScheduledExecutorService接口。 1. Java.util.Timer类: Timer类是Java早期提供的定时任务工具,它可以安排在...

    JAVA课程学习笔记.doc

    - `java.util.concurrent.Executors`:提供了一些静态工厂方法,用于创建不同类型的线程池实例,如 `newFixedThreadPool()`、`newSingleThreadExecutor()`。 - `java.util.concurrent.CompletionService`:允许获取...

    java 实现调度器

    这就引出了另一个更现代、更强大的解决方案——`java.util.concurrent.ScheduledExecutorService`。 `ScheduledExecutorService`是`ExecutorService`接口的一个子接口,提供了更高级的定时和延迟执行任务的能力。与...

    Java计时器

    其次,`java.util.concurrent.ScheduledExecutorService` 是Java并发包(java.util.concurrent)中的接口,它提供了更强大和灵活的定时任务调度功能。我们可以使用`Executors`类的静态方法创建一个...

    Java定时执行某个任务

    这里我们将深入探讨两种主要的方法:Java的`java.util.Timer`类和Java 5及以上版本引入的`java.util.concurrent.ScheduledExecutorService`接口。 首先,我们来了解`java.util.Timer`类。这个类允许开发者创建一个...

    java,javaweb,spring定时器

    在Java世界里,我们有多种实现定时任务的方式,包括Java内置的`java.util.Timer`类和`java.util.concurrent.ScheduledExecutorService`接口。在Web应用中,例如在Java Web项目中,我们可以利用Servlet容器的特性或者...

    SimpleDateFormat线程不安全的5种解决方案.docx

    import java.util.concurrent.locks.ReentrantLock; public class SimpleDateFormatExample { private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss"); private static Lock lock = ...

    java 写的定时器

    `ScheduledExecutorService` 是Java并发包(`java.util.concurrent`)的一部分,提供更强大、灵活的定时任务调度功能。它支持多线程任务执行,并且可以取消任务,还可以精确控制任务执行间隔。 实现 `...

    javaalert_JAVA源码_

    【标题】"javaalert_JAVA源码_" 暗示我们关注的是一个使用Java编程语言编写的关于提醒功能的程序。在Java中,创建一个定时提醒任务通常涉及到使用`java.util.Timer`类或`java.time`包中的定时器功能。让我们深入探讨...

    Server100 代码

    import java.util.concurrent.Executors; import java.io.*; class Server{ static ServerSocket ss=null; static Socket s=null; static List l=new ArrayList(); public Server(){ try { ss=new ...

    java获取压缩文件的名称并解压

    ExecutorService executor = Executors.newFixedThreadPool(THREAD_POOL_SIZE); List<Future<Void>> futures = new ArrayList(); for (ZipEntry entry : Collections.list(zip.entries())) { futures.add...

Global site tag (gtag.js) - Google Analytics