Java线程创建静态代理模式代码实例

 更新时间:2020年11月09日 10:51:41   作者:羊37  
这篇文章主要介绍了Java线程创建静态代理模式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、背景

在通过Runnable接口创建线程时,启动线程需要借助Thread类,这里就涉及到了静态代理模式。

二、实例

以歌手演出为例,在演出的这个过程中,歌手与他的助理他们有一个共同的目标"完成这场演出"。

为啥需要歌手需要有助理呢?

因为举办好一场演出有很多繁琐的事情要做,为了让歌手专心完成"唱歌"这件事,助理就需要在背后帮助歌手做很多事情。

1.助理负责帮助歌手做一些辅助工作,例如帮忙宣传、帮忙计划行程、帮忙订机票等等。

2.歌手负责唱歌这件事情。

三、实例的代码体现

1.公共的接口show

歌手与助理为了完成演出,都需要为这场演出做一些事情。

2.歌手类Singer实现Show接口

歌手要做的事情主要就是唱歌

3.助理类AssistantManager实现Show接口

助理要帮助歌手做一些辅助的工作

这样写助理和歌手好像并没有联系起来,我们只知道助理和歌手都为了同一场演出做了一些事情。

那这个助理究竟是服务哪一位歌手呢?

A.我们为助理类设置了一个成员变量"歌手"

B.为助理类创建了相应的构造方法

(经过以上两步,助理类在创建时就自带了一个相应的"歌手")

C.在演出所做的事情中,让助理对应的歌手完成"唱歌"这件事。

在创建助理类对象时设置相应的对象,借助助理类对象,就可以完成"演出"这整个过程。

运行代码:

四、总结

1.Java中的Thread类实现了Runable接口

即Thread类相当于上文中的"助理"

2.我们写的类也是实现了Runnable接口

即我们写的类相当于上文中的"歌手"

3.在实现了Runnable接口后通过代理类Thread对象完成线程的启动

A.在代理类Thread对象的创建中,声明了我们所写的实际对象,eg:"myRunnable"。

B.然后由Thread类协助我们完成这一系列的操作。

C.看似简单的start()背后,代理类Thread还帮助我们做了很多事。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • RequestContextHolder.getRequestAttributes()空指针问题及解决

    RequestContextHolder.getRequestAttributes()空指针问题及解决

    这篇文章主要介绍了RequestContextHolder.getRequestAttributes()空指针问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • SpringBoot条件注解@Conditional详细解析

    SpringBoot条件注解@Conditional详细解析

    这篇文章主要介绍了SpringBoot条件注解@Conditional详细解析,@Conditional是Spring4.0提供的一个用于条件装配的注解,其定义了一个Condition的数组,只有当数组所有的条件都满足的时候,组件才会被导入容器,需要的朋友可以参考下
    2023-11-11
  • Messges Queue消息队列详解

    Messges Queue消息队列详解

    这篇文章主要介绍了Messges Queue消息队列详解,消息队列一般简称为 MQ,是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器,需要的朋友可以参考下
    2023-07-07
  • SpringBoot JWT令牌的使用

    SpringBoot JWT令牌的使用

    JWT令牌中包含了一个用户名和哈希值,这些都需要进行验证,本文主要介绍了SpringBoot JWT令牌的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 详解Java之路(五) 访问权限控制

    详解Java之路(五) 访问权限控制

    本篇文章主要介绍了Java之路(五) 访问权限控制 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
    2016-12-12
  • 解决Java中new BigDecimal()的坑

    解决Java中new BigDecimal()的坑

    这篇文章主要介绍了解决Java中new BigDecimal()的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 在Spring中编写事务的介绍

    在Spring中编写事务的介绍

    今天小编就为大家分享一篇关于在Spring中编写事务的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 关于@ResponseBody 默认输出的误区的解答

    关于@ResponseBody 默认输出的误区的解答

    这篇文章主要介绍了关于@ResponseBody 默认输出的误区的解答,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 使用java基础类实现zip压缩和zip解压工具类分享

    使用java基础类实现zip压缩和zip解压工具类分享

    使用java基础类写的一个简单的zip压缩解压工具类,实现了指定目录压缩到和该目录同名的zip文件和将zip文件解压到指定的目录的功能
    2014-03-03
  • Java封装数组实现包含、搜索和删除元素操作详解

    Java封装数组实现包含、搜索和删除元素操作详解

    这篇文章主要介绍了Java封装数组实现包含、搜索和删除元素操作,结合实例形式分析了java针对数组元素的查找、删除、判断等相关操作封装与使用技巧,需要的朋友可以参考下
    2020-03-03

最新评论