摘要:
转载 C#-表达式树 - 一只独行的猿 - 博客园 (cnblogs.com) int[] ints1 = new int[] { 1,23,434,631,3,56,86,83 }; Console.WriteLine($"筛选前数据:{string.Join(',',ints1)}"); Exp 阅读全文
摘要:
在C#中,反射(Reflection)是一个强大的工具,它允许程序在运行时检查类型的信息(如类、结构、接口、字段、属性、方法等),并且可以动态地创建和调用类型的实例。反射主要使用System.Reflection命名空间中的类。 以下是一些反射的常见用法: 获取类型信息: 使用Typeof运算符或o 阅读全文
摘要:
一、定义异步任务 //定义异步任务 public class AsyncClass { public static async Task TaskAsync(CancellationToken token) { token.Register(() => { Console.WriteLine("Ta 阅读全文
摘要:
使用线程安全的集合 线程安全的集合类都位于System.Collections.Concurrent命名空间中 ConcurrentBag<T>:表示一个线程安全的无序集合,允许并发添加和移除元素。它不同于传统的集合,因为它不保证元素的顺序,并且不支持枚举过程中的元素修改。ConcurrentBag 阅读全文
摘要:
定义 在C#中,存在多种类型的信号量或同步机制来控制对共享资源的访问。这些信号量通常用于多线程编程,以确保资源在并发访问时的正确性和一致性。以下是一些主要的信号量及其描述: AutoResetEvent: 当线程调用WaitOne方法时,它会阻塞,直到另一个线程调用Set方法。 一旦Set方法被调用 阅读全文
摘要:
一、缓存雪崩、缓存穿透 现象:缓存雪崩:大量缓存同时过期、缓存中间件宕机 缓存穿透:访问不存在key、缓存过期解决:缓存雪崩:设置不同过期时间 缓存穿透:不存在key也存入缓存、使用布隆过滤器、使用分布式锁 二、Redis集群 主从复制:支持redis读写分离,不支持故障恢复 哨兵集群 :在主从复制 阅读全文
摘要:
//connection //channel //broke //exchange:fanout、 dirct、 topic(*:一个单词、#:多个单词)、 header //queue //bind(exchange,queue,routingkey) //一、如何保证消息不丢失 //生产者发布消 阅读全文
摘要:
委托(普通、多播)delegate OutParm delegateName(InParm1,InParm2,......) 类似于函数指针 Delegate int Mydelegate(int a,int b) 用处:回调函数、 传递表达式 (lambda表达式:实质为泛型委托) 内置泛型委托 阅读全文
摘要:
一、程序优化 热点数据使用缓存 数据库读写分离 二、数据库方面的优化 1、数据库设计优化 如果单表数据量过大,可以根据业务来做分表 数据库表可以做一些字段冗余,可以减少连表查询,提升查询效率 2、Sql语句优化 2.1.首先定位慢查询 开启慢查询日志 mysql slow_query_log:是否开 阅读全文