
命令模式在开源代码中的应用
sehfections of the Command pattern:
发布日期:2021-05-15 17:43:48
浏览次数:19
分类:精选文章
本文共 1413 字,大约阅读时间需要 4 分钟。
命令模式的作用是将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。
JDK中的线程Java.lang.Thread
Thread类采用了命令模式。Thread的构造方法可以接收实现Runnable接口的对象,Runnable的run方法可以理解为抽象命令,具体命令由程序员实现。任务的接收与执行由CPU完成,而任务的发起者是程序员。
命令模式特点
- 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中的内存管理机制支持线程安全地分配和释放内存资源。即使在多线程环境中,内存资源的管理也能保持同步和一致性。这一点对于分配策略和内存管理机制的设计有着重要意义。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月17日 07时17分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
一段强大的shellcode
2019-03-12
双链表相加问题
2019-03-12
GB2312-80 汉字机内码
2019-03-12
n的a进制数
2019-03-12
配置jdk的环境变量
2019-03-12
echo命令的颜色及同行显示控制
2019-03-12
CentOS7利用Systemd添加用户自定义系统服务
2019-03-12
懒人HTML5笔记-1
2019-03-12
两台服务器http方式共享yum软件仓库
2019-03-12
团队背包(team)
2019-03-12
spring tx:advice 和 aop:config 配置事务
2019-03-12
修改layui的后台模板的左侧导航栏可以伸缩
2019-03-12
ThreadLocal源码分析解密
2019-03-12
编译android源代码(aosp)
2019-03-12
Java流程控制语句
2019-03-12
wincc实现手机APP远程监控
2019-03-12
3.6.X版本的OSG无法打开osgShadow/ShadowVolume的问题
2019-03-12
vue手写 头部 滑动按钮 点击查看更多,可折叠
2019-03-12
IDEA 找不到 Persistence窗口解决办法
2019-03-12