Java线程创建静态代理模式代码实例
作者:羊37 发布时间:2021-11-17 18:37:23
一、背景
在通过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还帮助我们做了很多事。
来源:https://www.cnblogs.com/yang37/p/12683021.html
猜你喜欢
- 利用Jconsole工具查看程序的资源占用请求。安装jdk时bin目录有jconsole.exe工具,或者通过 Win + R,输入jcon
- 本文实例为大家分享了java抓取邮箱号码的具体代码,供大家参考,具体内容如下java抓取文件中邮箱号码的具体代码package reg;im
- 主要技术实现:spring、 springmvc、 redis、 springboot、 mybatis 、sessi
- 前言一个简单的单机小游戏:flypybird ,用来巩固java基础。涉及主要知识点:JFrame 、 JPanel 、 继承、 键盘/鼠标
- Controller如何进行重定向Spring MVC中进行重定向本人知道的有两种方式方法返回的URI(相对路径)中加上"redi
- 目录题目及要求:提示:原创代码:代码思路:题目及要求:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。提示:0 <
- 提出问题下面所给代码编译时正常,但是执行时会出错,请指出程序在执行时能够执行到编号为(1)(2)(3)的代码行中的哪一行。using Sys
- 前台form 表单:设置method=post,enctype=multipart/form-data。struts2在原有的上传解析器继承
- 在文件夹中,我们经常有类似s_1.txt、s_2.txt、s_10.txt、s_11.txt这样的命名方式,我们期望的排序方式是s_1.tx
- Android Studio 在引用外部依赖时,发现一直无法引用外部依赖。刚开始以为是墙的问题,尝试修改Gradle配置,未解决问题。最终发
- 1安装eclipse插件步骤,点击help,选择Eclipse Marketplace2.输入Scala,点击go3.选择搜索到的Scala
- 又遇到了回调函数,这次打算写下来分享一下。所谓回调函数,或者在面向对象语言里叫回调方法,简单点讲,就是回头在某个时间(事件发生)被调用的函数
- 前几天在这里分享了手写 sql 分页查询实现分页,现在来看看使用 mybatis 分页插件 pagehepler 来实现分页使用分页插件的原
- WCF实例(带步骤) <xmlnamespace prefix ="o" ns ="urn:schema
- 基础环境SpringBoot、Maven代码实现1.添加依赖<!--二维码生成 --><dependency&
- 在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递。数据的格式通常有2种:1、xml;
- 最近我在考虑如何远程控制tomcat的启动和关机,最后是有友好的界面,能够实现一键式操作的,这样会肯定是会很方便的,网上找了半天,没找到,有
- 本文实例讲述了Java基于享元模式实现五子棋游戏功能。分享给大家供大家参考,具体如下:一、模式定义享元模式,以共享的方式高效地支持大量的细粒
- 整型变量基本语法格式int变量名= 初始值;代码示例int a = 10;int表示变量的类型是一个整型。在 Java 中, 一个int变量
- 使用Aspose.Cells创建和读取Excel文件,供大家参考,具体内容如下1. 创建ExcelAspose.Cells.License