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

作者:羊37 时间:2021-11-17 18:37:23 

一、背景

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

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

二、实例

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

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

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

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

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

三、实例的代码体现

1.公共的接口show

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

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

2.歌手类Singer实现Show接口

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

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

3.助理类AssistantManager实现Show接口

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

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

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

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

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

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

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

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

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

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

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

运行代码:

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

四、总结

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

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

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

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

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

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

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

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

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

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

来源:https://www.cnblogs.com/yang37/p/12683021.html

标签:Java,线程,创建,静态,代理
0
投稿

猜你喜欢

  • Java使用JDBC连接postgresql数据库示例

    2022-11-06 22:49:02
  • windows系统配置Java开发环境变量

    2022-03-07 23:28:07
  • Java中BigDecimal的加减乘除、比较大小与使用注意事项

    2022-02-17 21:24:09
  • SWT(JFace)体验之ApplicationWindow

    2023-01-02 09:59:43
  • Spring Security自定义登录原理及实现详解

    2022-11-20 21:57:39
  • C#中闭包概念讲解

    2022-08-16 05:16:28
  • Java面试题冲刺第十六天--消息队列

    2022-08-08 09:07:04
  • Spring Boot 利用 XML 方式整合 MyBatis

    2023-02-09 23:01:18
  • 详解eclipse下创建第一个spring boot项目

    2022-01-02 10:36:13
  • Spring的初始化和XML解析的实现

    2022-12-13 15:50:51
  • Java文本文件操作方法实例详解

    2021-12-14 10:03:21
  • 浅谈JVM内存溢出原因和解决思路

    2023-11-23 12:24:15
  • 如何在Android中实现左右滑动的指引效果

    2023-06-23 09:08:47
  • 如何用Spring发送电子邮件

    2023-12-05 07:34:14
  • Java运行时环境之ClassLoader类加载机制详解

    2022-07-18 04:54:05
  • 如何用120行Java代码写一个自己的区块链

    2023-07-17 03:44:33
  • Java开发必备的三大修饰符

    2021-10-19 10:11:01
  • 详解Java程序启动时-D指定参数是什么

    2021-10-22 07:35:34
  • java Disruptor构建高性能内存队列使用详解

    2022-02-03 00:41:14
  • Android编程实现WebView添加进度条的方法

    2023-07-06 03:16:46
  • asp之家 软件编程 m.aspxhome.com