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中实现线程同步与通信。 首先,我们来探讨多线程的基本概念。在单核CPU环境下,多线程并不是真正意义上的同时...
总的来说,多线程扫描代理器通过多线程技术实现高效扫描,结合代理服务器的使用,为论坛账号马甲的管理提供了一种实用且安全的解决方案。理解多线程和代理服务器的工作原理,以及如何正确使用和配置它们,对于有效...
通过创建一个新的`Thread`实例,并指定线程执行的方法(通常是一个静态方法或者实例方法),可以实现多线程编程。 **示例代码片段:** ```csharp Thread thr = new Thread(Thread_dailiEvent); thr.Start(); ``` ...
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
Java多线程 基础学习笔记 / 学习静态代理模式-附件资源
在操作系统中,线程是程序执行的基本单元,每个线程都有自己的程序计数器、系统栈和局部变量,但共享同一块内存空间,包括全局变量和静态变量。多线程就是在同一程序中同时运行多个线程,它们可以并行执行不同的任务...
在`Main`方法中,我们创建了一个新的`Thread`实例,传入`MyMethod`的`ThreadStart`代理,然后调用`Start()`来启动线程。 **线程同步与通信** 为了防止线程间的资源竞争和确保数据一致性,C#提供了多种同步机制,如...
如果需要,我们就使用`Invoke`方法,传入一个代理,该代理将调用相同的方法,但在正确的线程上下文中。如果不需要,我们就直接执行操作。 这样,我们就可以在后台线程中安全地调用这些方法来更新控件: ```csharp ...
2. **Sleep(int)**:这是一个静态方法,用来让当前线程暂停指定的毫秒数,让其他线程有机会执行。 3. **Abort()**:这个方法用于请求结束线程,但需要注意,线程并不一定会立即停止,尤其是当线程正在执行不可中断...
Java代码主要运用了Threadlocal、策略模式、动态代理、静态代理、单例模式(包括懒汉式、饿汉式、加锁懒汉式、双重判定锁)、volatile关键字、synchronized关键字、wait/notify/notifyAll机制、join方法来保证线程...
- **线程池模式**:`ThreadPoolExecutor`可以视为工厂模式和代理模式的结合,管理线程的创建和销毁,提高资源利用率。 - **读写锁模式**:`ReadWriteLock`实现了读多写少的并发策略,允许多个读线程同时访问,写...
线程迁移在Java移动代理系统中用于将代理线程从一个节点转移到另一个节点,在Web包容器集群系统中则用于平衡不同节点间的负载。Java虽然提供了对象序列化等机制支持对象和代码的迁移,但由于每次迁移都从程序的起点...
饿汉式单例模式在类加载时创建实例,懒汉式单例模式在第一次访问时创建实例,静态内部类单例模式使用静态内部类来创建实例。 万恶的反射 反射是 Java 中的一种机制,用于在运行时访问和操作类的成员变量和方法。...
总结来说,这个实验展示了在ActiveMQ中如何使用多线程消费者和静态分配策略来处理消息。多线程可以提高消息处理的并发性,而静态分配策略保证了消息在多个消费者间的公平分发。在实际应用中,根据业务需求选择合适的...
此外,单例模式在多线程环境中需要考虑线程安全问题,通常采用双重检查锁定或静态内部类等方式实现。 这个资源中的"设计模式:Java语言中的应用.pdf"很可能详细阐述了如何将设计模式应用于Java编程中,包括但不限于...
静态代理的缺点在于如果有很多接口,就需要为每个接口创建一个代理类,这可能导致代码冗余。 2. 动态代理:在运行时动态创建代理类,不需要预先知道所有代理的接口。Java提供了`java.lang.reflect.Proxy`类和`java....
6. **多线程支持**: C++库通常支持多线程编程,libmosquittopp也不例外,可以在多线程环境中使用,但需要正确管理和同步资源,避免竞态条件。 7. **TLS/SSL加密**: 为了确保数据传输的安全性,libmosquittopp支持...
3. **静态调用**:使用生成的代理类,我们可以静态地调用Web Service的方法。例如,如果Web Service有一个名为`GetDatabaseData`的方法,我们可以通过以下方式调用: ```csharp ServiceReference1.Service1Client....
单例模式是设计模式中比较简单的一个,也是非常常见的,但是在多线程并发的环境下使用却是不那么简单了。今天我们将分享一个在开发过程中遇到的单例模式的应用。 单例模式的定义:一个类有且仅有一个实例,并且自行...