1 静态代理模式概念和代码:
/** * 静态代理 设计模式 * 1、真实角色 * 2、代理角色: 持有真实角色的引用 * 3、二者 实现相同的接口 * * @author Administrator * */ //接口 interface Marry{ public abstract void marry(); } public class StaticProxy { /** * @param args */ public static void main(String[] args) { //创建真实角色 Marry you =new You(); //创建代理角色 +真实角色的引用 WeddingCompany company =new WeddingCompany(you); //执行任务 company.marry(); } } //真实角色 class You implements Marry{ @Override public void marry() { System.out.println("you and 嫦娥结婚了...."); } } //代理角色 class WeddingCompany implements Marry{ private Marry you; public WeddingCompany() { } public WeddingCompany(Marry you) { this.you = you; } private void before(){ System.out.println("布置猪窝...."); } private void after(){ System.out.println("闹玉兔...."); } @Override public void marry() { before(); // 代理对象的方法 you.marry();// 使用真实对象的方法 after();// 代理对象的方法 } }
2 线程类Thread中静态代理模式:
Thread是代理类,在 new Thread(目标类), 目标类 implements Runnable 接口 Runnable 方法run() 然后在代理类的 run(){ 调用目标类.run()}
创建线程使用静态代理写法:
/** * 方便共享资源 * @author Administrator * */ public class Web12306 implements Runnable { private int num =50; @Override public void run() { while(true){ if(num<=0){ break; //跳出循环 } System.out.println(Thread.currentThread().getName()+"抢到了"+num--); } } public static void main(String[] args) { //真实角色 Web12306 web = new Web12306(); //代理 Thread t1 =new Thread(web,"路人甲"); Thread t2 =new Thread(web,"黄牛已"); Thread t3 =new Thread(web,"攻城师"); //启动线程 t1.start(); t2.start(); t3.start(); } }
相关推荐
简单学习多线程有力的好帮手,我也是刚刚学习总结的自己的经验 希望大家借鉴,
Java多线程 基础学习笔记 / 学习静态代理模式-附件资源
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
代码实现spring bean的生命周期、Ttread线程实例、代理模式(静态代理、动态代理)
12、静态代理和动态代理的区别,什么场景使用? 14、Java中实现多态的机制是什么? 16、说说你对Java反射的理解 17、说说你对Java注解的理解 18、Java中String的了解 19、String为什么要设计成不可变的? 20、...
· 使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集加载、反射和C#的dynamic类型来构造具有动态...
17. 动态代理和静态代理 18. 封装、继承、多态 19. static加载顺序 20. 代理和反射(3分钟),反射泛型还有用吗 21. final关键字 22. 线程wait和sleep相同点和不同点 23. 为什么start调用run方法,调用run不会...
MQTT代理-使用coreMQTT 注意:MQTT代理和关联的示例项目可以运行,但尚未完成。 请注意,该代理尚未符合我们的代码质量标准,并且尚未经过全面测试。 它的API有可能在其正式的第一个版本之前更改。 欢迎在上提供反馈...
MQTT代理和演示任务(包括OTA)-使用coreMQTT 注意:MQTT代理和关联的示例项目可以运行,但尚未完成。 请注意,该代理尚未符合我们的代码质量标准,并且尚未经过全面测试。 它的API有可能在其正式的第一个版本之前...
魔术java Java编程学习资料库。 Java基础 基本1 这里包括基本的Java语法和用法。 Java关键字和用法的基本示例。... 静态代理。 Lambda表达式。 线程同步。 锁。 Java网络 IP地址信息。 通过TCP
· 使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集加载、反射和C#的dynamic类型来构造具有动态...
25.7 使用专用线程执行异步的计算限制操作 25.8 使用线程的理由 25.9 线程调度和优先级 25.10 前台线程和后台线程 25.11 继续学习 第26章 计算限制的异步操作 26.1 CLR线程池基础 26.2 执行简单的计算限制...
· 使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集加载、反射和C#的dynamic类型来构造具有动态...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
day01-复习回顾、静态、继承、引用类型使用 day02-抽象类、接口、代码块,final、单例、枚举 day03-多态、包、权限修饰符、内部类,Object类,Date类 day04-常用API、正则表达式,泛型、Collection集合API day05-...
代理服务器,ProxyServer.java; telnet客户端,访问系统的telnet服务实质上是与telnet服务建立socket连接,默认的telnet服务的端口是23,TelnetClient.java; UDP编程,包括收发udp报文; 聊天室服务器端,Chat...