(原创)多线程设计模式 之 不变模式

简介:

模式名称:只读模式

数据访问性:只读
数据访问条件:没有
可开线程数量:按需开启
数据吞吐性:好,可多线程同时工作
工作时机:线程启动后立即开始

线程工作特点:
1、只能读取数据对象
2、多个线程可以同时访问数据对象

namespace  Pattern_1
{
    
public class Data
    
{
        
//被保护的数据对象
        const string info = "Hello World";

        Random random 
= new Random();

        
//线程方法
        public void Func(Object id)
        
{
            System.Console.WriteLine(
"{0} 号线程开始处理数据:{1}", id, info);
            DoSomething((
int)id);
            System.Console.WriteLine(
"{0} 号线程完成处理任务", id);
        }


        
//非常耗时的工作
        private void DoSomething(int id)
        
{
            
string str = "";
            
for (int i = 0; i < 60; i++)
            
{  
                 str 
= str + ".";
                 System.Console.WriteLine(
"{0} 号线程工作进度{1}", id, str);
                Thread.Sleep(random.Next(
3000));
            }
    
        }

    }

}


客户端:

namespace  Threads
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            Client_1.Run();
        }


        
//演示不变模式
        class Client_1
        
{
            
static public void Run()
            
{
                Pattern_1.Data data 
= new Pattern_1.Data();
                
int i;
                
for (i = 0; i < 2; i++)
                
{
                    Thread t 
= new Thread(new ParameterizedThreadStart(data.Func));
                    t.Start(i);
                }

                Console.ReadLine();
            }

        }

    }

}


运行效果如下图


本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2006/04/17/377437.html,如需转载请自行联系原作者


目录
相关文章
|
8月前
|
负载均衡 算法 安全
基于Reactor模式的高性能网络库之线程池组件设计篇
EventLoopThreadPool 是 Reactor 模式中实现“一个主线程 + 多个工作线程”的关键组件,用于高效管理多个 EventLoop 并在多核 CPU 上分担高并发 I/O 压力。通过封装 Thread 类和 EventLoopThread,实现线程创建、管理和事件循环的调度,形成线程池结构。每个 EventLoopThread 管理一个子线程与对应的 EventLoop(subloop),主线程(base loop)通过负载均衡算法将任务派发至各 subloop,从而提升系统性能与并发处理能力。
435 3
|
10月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
296 16
|
5月前
|
设计模式 缓存 安全
【JUC】(6)带你了解共享模型之 享元和不可变 模型并初步带你了解并发工具 线程池Pool,文章内还有饥饿问题、设计模式之工作线程的解决于实现
JUC专栏第六篇,本文带你了解两个共享模型:享元和不可变 模型,并初步带你了解并发工具 线程池Pool,文章中还有解决饥饿问题、设计模式之工作线程的实现
323 2
|
5月前
|
设计模式 消息中间件 安全
【JUC】(3)常见的设计模式概念分析与多把锁使用场景!!理解线程状态转换条件!带你深入JUC!!文章全程笔记干货!!
JUC专栏第三篇,带你继续深入JUC! 本篇文章涵盖内容:保护性暂停、生产者与消费者、Park&unPark、线程转换条件、多把锁情况分析、可重入锁、顺序控制 笔记共享!!文章全程干货!
395 1
|
10月前
|
设计模式 负载均衡 监控
并发设计模式实战系列(2):领导者/追随者模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第二章领导者/追随者(Leader/Followers)模式,废话不多说直接开始~
288 0
|
10月前
|
设计模式 监控 Java
并发设计模式实战系列(1):半同步/半异步模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第一章半同步/半异步(Half-Sync/Half-Async)模式,废话不多说直接开始~
354 0
|
10月前
|
设计模式 运维 监控
并发设计模式实战系列(4):线程池
需要建立持续的性能剖析(Profiling)和调优机制。通过以上十二个维度的系统化扩展,构建了一个从。设置合理队列容量/拒绝策略。动态扩容/优化任务处理速度。检查线程栈定位热点代码。调整最大用户进程数限制。CPU占用率100%
595 0
|
10月前
|
设计模式 安全 Java
并发设计模式实战系列(12):不变模式(Immutable Object)
🌟 大家好,我是摘星!🌟今天为大家带来的是并发设计模式实战系列,第十二章,废话不多说直接开始~
239 0
|
10月前
|
设计模式 算法 Java
设计模式觉醒系列(04)策略模式|简单工厂模式的升级版
本文介绍了简单工厂模式与策略模式的概念及其融合实践。简单工厂模式用于对象创建,通过隐藏实现细节简化代码;策略模式关注行为封装与切换,支持动态替换算法,增强灵活性。两者结合形成“策略工厂”,既简化对象创建又保持低耦合。文章通过支付案例演示了模式的应用,并强调实际开发中应根据需求选择合适的设计模式,避免生搬硬套。最后推荐了JVM调优、并发编程等技术专题,助力开发者提升技能。