`
desert3
  • 浏览: 2159425 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

java 5 多线程相关的部分接口和类

    博客分类:
  • Java
 
阅读更多
java.lang.Runnable接口: Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。
public interface Runnable {
    public abstract void run();
}

java.lang.Thread extends Object implements Runnable:线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。

java.util.concurrent. Callable<V>接口:返回结果并且可能抛出异常的任务。类必须定义一个称为 call 的无参数方法,并有返回值V。 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
public interface Callable<V> {
    V call() throws Exception;
}

java.util.concurrent.Executor接口:执行已提交的 Runnable 任务的对象。类必须定义一个称为 execute 的含Runnable参数的方法,并无返回值。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调度等)分离开来的方法。通常使用 Executor 而不是显式地创建线程。
public interface Executor {
    void execute(Runnable command);
}

java.util.concurrent.Executors extends Object:此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:
创建并返回设置有常用配置字符串的 ExecutorService 的方法。
创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。
Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和 Executors.newSingleThreadExecutor()(单个后台线程),它们均为大多数使用场景预定义了设置。
    public static ExecutorService newFixedThreadPool(int nThreads) {
        return new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>());
    }

    public static ExecutorService newSingleThreadExecutor() {
        return new FinalizableDelegatedExecutorService
            (new ThreadPoolExecutor(1, 1,
                                    0L, TimeUnit.MILLISECONDS,
                                    new LinkedBlockingQueue<Runnable>()));
    }

    public static ExecutorService newCachedThreadPool() {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                      60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>());
    }


java.util.concurrent.ThreadFactory接口:根据需要创建新线程的对象。使用线程工厂就无需再手工编写对 new Thread 的调用了,从而允许应用程序使用特殊的线程子类、属性等等。Executors.defaultThreadFactory() 方法提供了更有用的简单实现,即在返回线程前将已创建线程的上下文设置为已知的值。
public interface ThreadFactory {
    Thread newThread(Runnable r);
}

java.util.concurrent.ExecutorService extends Executor接口:为Executor 提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行状况而生成 Future 的方法。通过创建并返回一个可用于取消执行和/或等待完成的 Future,方法 submit(有Future返回值) 扩展了基本方法 Executor.execute(java.lang.Runnable)(无返回值)。

java.util.concurrent.class ThreadPoolExecutor extends AbstractExecutorService:一个 已实现ExecutorService接口的线程池类,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。

java.util.concurrent.Future<V>接口:Future 表示异步计算的结果。
java.util.concurrent.FutureTask<V> extends Object implements Future<V>, Runnable:可取消的异步计算类。利用开始和取消计算的方法、查询计算是否完成的方法和检索计算结果的方法,此类提供了对 Future 的基本实现。


java.lang.ThreadLocal类: 提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。 每个线程都保持对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。
public class ThreadLocal<T>extends Object {
// 返回此线程局部变量的当前线程副本中的值。
T get();
// 返回此线程局部变量的当前线程的“初始值”。
protected T initialValue();
// 移除此线程局部变量当前线程的值。
void remove();
// 将此线程局部变量的当前线程副本中的值设置为指定值。
void set(T value);
}
分享到:
评论

相关推荐

    Java多线程机制(讲述java里面与多线程有关的函数)

    Java多线程机制是Java编程中至关重要的一部分,它允许程序同时执行多个任务,提升应用程序的效率和响应性。以下是对各个知识点的详细说明: 9.1 Java中的线程: Java程序中的线程是在操作系统级别的线程基础上进行...

    JAVAJAVA多线程教学演示系统论文

    2. **JAVA多线程API**:论文会详细阐述JAVA提供的多线程API,如Thread类、Runnable接口、ExecutorService和Future接口等。通过实例解析这些类和接口的使用方法,帮助读者理解如何在实际编程中创建和管理线程。 3. *...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    java多线程分页查询

    ### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...

    现代多线程 JAVA和c++多线程实现 测试和调试

    在现代软件开发中,多线程技术已经成为必不可少的一部分,特别是在JAVA和C++这样的高级编程语言中。多线程允许程序同时执行多个任务,提高应用程序的响应性和效率。本资源主要探讨了如何在JAVA和C++中实现多线程,...

    java多线程文件传输

    Java多线程文件传输是Java编程中一个重要的实践领域,特别是在大数据处理、网络通信和分布式系统中。在Java中,多线程可以提高程序的执行效率,尤其在处理并发任务时,如大文件的上传、下载和传输。下面将详细探讨...

    java实现多线程文件传输

    在Java编程语言中,实现多线程文件传输是一种优化程序性能、提高系统资源...在提供的`java多线程文件传输`压缩包中,可能包含了实现这些概念的示例代码,通过分析和学习,可以更好地理解多线程文件传输的原理和实践。

    java多线程处理数据库数据

    然而,为了更好地管理和控制线程,Java并发包提供了如`ExecutorService`、`Future`、`Callable`等高级接口和类,它们简化了多线程编程,并提供了更好的资源管理。 在处理数据库数据时,我们通常会使用JDBC(Java ...

    Java_多线程与并发编程总结.doc

    Java多线程与并发编程是Java开发中至关重要的一部分,它涉及到如何高效地利用CPU资源,以实现程序的并行执行。在操作系统层面,多任务和多进程是通过分配不同的内存空间来实现的,而线程则共享同一进程的内存,这...

    Java 多线程 PPT

    本文将深入探讨Java多线程的相关概念、线程类和接口的使用,以及线程的同步与互斥。 首先,我们需要理解进程与线程的基本概念。程序是一组静态指令的集合,而进程则是程序在执行过程中的一个实例,拥有独立的内存...

    Java多线程编程核心技术_完整版_java_

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过继承Thread类或实现Runnable接口来实现。本教程《Java多线程编程核心技术》将...

    JAVA多线程编程技术PDF

    这份“JAVA多线程编程技术PDF”是学习和掌握这一领域的经典资料,涵盖了多线程的全部知识点。 首先,多线程的核心概念包括线程的创建与启动。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建后...

    Java多线程技术精讲

    Java多线程技术是Java编程中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在现代计算机系统中,多线程是实现并发处理的关键技术,尤其在服务器端应用和高性能计算中不可或缺。 ...

    java多线程实现大批量数据导入源码

    总的来说,本项目通过Java多线程技术,结合合理的数据切分和线程池管理,实现对大数据的高效批量处理。通过分析和优化这些关键点,我们可以根据实际情况调整参数,进一步提高数据导入导出的效率。

    java多线程设计模式_java_设计模式_多线程_多线程课题_

    Java多线程设计模式是Java开发中的核心概念,它涉及到如何高效、安全地在多个执行线程之间共享资源和协调任务。设计模式是解决特定问题的成熟方案,它们是编程经验的结晶,可以帮助开发者在面临多线程挑战时快速找到...

    java多线程进度条实例

    在Java编程中,多线程是一项关键特性,它允许程序同时执行多个任务,极大地提高了效率。本实例将探讨如何利用Java实现一个具有进度条显示功能的多线程应用。进度条通常用于可视化地表示某个任务的完成程度,这对于长...

    java多线程编程

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过继承Thread类或实现Runnable接口来实现。本教程将深入探讨Java多线程的各个方面...

    Java多线程编程

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过`Thread`类和并发工具来实现,接下来我们将深入探讨这些关键知识点。 1. **...

    武汉理工大学Java多线程实验源码

    总结来说,这个实验源码涵盖了Java多线程的基础和应用,包括线程的创建、运行、同步、通信,以及网络编程和数据库操作。通过这些实验,学生可以深入理解Java并发编程的核心概念,并掌握实际开发中的多线程设计技巧。

Global site tag (gtag.js) - Google Analytics