【胡思乱想】命令模式 与 Thread Runnable

实现线程任务有两种方式,一种是创建Runnable/Callable对象,传递给Thread。另一种是子类重写Thread的run方法。

我觉得前一种像极了命令模式,或者说应该是命令模式的一个使用案例。

相似如下:

(1)Runnable 接口,只定义一个"()V"(表示无参,返回值为void)的方法run。创建Runnable对象的方式也有很多,这里就提一种,那就是定义一个类A实现Runnable接口。这个类A一般还有其他引用其他对象,然后在run方法里对其进行调用,来完成任务。

对应命令模式,Command接口,也只有一个()V方法,execute。Command的实现类,存有Receiver,然后在execute方法里对Receiver进行操作。

(2)Thread对象,通过构造方法把Runnable传入,启动线程后,OS线程将回调Thread.run方法,在这种情况下(即没有覆盖Thread.run),其将调用target.run(),执行Runnable对象。

对应命令模式,Invoker,通过setCommand方法传入命令对象,然后在其某个方法中调用命令对象的execute方法。

 

posted @   猫毛·波拿巴  阅读(750)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示