命令模式在开源代码中的应用
发布日期:2021-05-15 17:43:48 浏览次数:19 分类:精选文章

本文共 1413 字,大约阅读时间需要 4 分钟。

命令模式的作用是将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。

JDK中的线程Java.lang.Thread

Thread类采用了命令模式。Thread的构造方法可以接收实现Runnable接口的对象,Runnable的run方法可以理解为抽象命令,具体命令由程序员实现。任务的接收与执行由CPU完成,而任务的发起者是程序员。

命令模式特点

  • sehfections of the Command pattern:
    • Request object将请求封装为一个对象。
    • 发出请求的责任和执行请求的责任分隔开,分割开求职和责任。
    • 通过不同的命令对象可以支持多种操作。
    • 方便支持日志、事务、错误处理等额外功能。
  • Java Thread的实现细节

    public class Thread implements Runnable {
    private Runnable target;
    public Thread(Runnable target) {
    init(null, target, "Thread-" + nextThreadNum(), 0);
    }
    // 可以被重写,执行任务
    public void run() {
    if (target != null) {
    target.run();
    }
    }
    // 线程启动,提交任务给 CPU
    public synchronized void start() {
    if (threadStatus != 0)
    throw new IllegalThreadStateException();
    group.add(this);
    boolean started = false;
    try {
    start0();
    started = true;
    } finally {
    try {
    if (!started) {
    group.threadStartFailed(this);
    }
    } catch (Throwable ignore) {
    }
    }
    }
    // 本地方法启动线程,提交任务给 CPU
    private native void start0();
    }

    Runnable接口

    public interface Runnable {
    void run();
    }

    例外处理

    在Java中,异常处理和资源释放需要有序进行。因此,在start方法中,异常处理必须在finally块中进行安排,以确保即使线程启动失败,也能执行异常处理逻辑。这种方法能够保证线程的可靠性和资源管理的质量。

    JVM内存管理

    JVM中的内存管理机制支持线程安全地分配和释放内存资源。即使在多线程环境中,内存资源的管理也能保持同步和一致性。这一点对于分配策略和内存管理机制的设计有着重要意义。

    上一篇:《设计模式》- GoF
    下一篇:策略模式在开源代码中应用

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2025年04月17日 07时17分20秒