自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 【redis学习系列】数据结构与对象 1

日常的开发中,涉及到缓存的应用场景, 大多数情况会用到redis, 本系列文章将介绍redis的内部构造以及运行机制。本文主要介绍redis中的三种数据结构: 简单动态字符串、链表和字典。1. 简单动态字符串1.1. SDS的定义redis中并没有直接使用c传统字符串表示, 而是定义了一种名为简单动态字符串(simple dynamic string)的抽象类型, 并将SDS作为r...

2019-11-26 21:29:19 208

原创 【高并发程序设计】函数式编程

1. 函数式接口只有一个抽象方法的接口, 被称为函数式接口, 可以使用@FunctionalInterface注解来表明(如果符合函数式接口规范, 即便不使用该注解, 编译器依然会将其认定为函数式接口)。这里需要注意的是, 函数式接口规范中, “只能有一个抽象方法”, 并不是说该接口中只能有一个方法。 Java8以后, 接口中存在实例方法; 同时, 任何被Object实现的方法, 均不会...

2019-11-18 23:17:00 328

原创 【高并发程序设计】并发模式

1.单例单例模式基本算是最简单,但使用最广泛的模式了, 本文不对常用写法(懒汉、恶汉、枚举等)多加赘述, 只给出并发模式中实现简单性能最优的方案:public class Singleton { private Singleton() { System.out.println("Singleton is create"); } private s...

2019-11-12 01:31:03 220

原创 【高并发程序设计】无锁

并发控制中, 加锁的策略是悲观的, 其总是假设每次临界区操作都会产生冲突,因此每次都小心翼翼的。 当多个线程同时访问临界区资源时, 即便操作过程不会冲突, 程序也依然加锁让单一线程独享临界区资源, 同时挂起其他要访问的线程让它们等待, 这会牺牲系统性能。 而另一种无锁策略, 假设所有资源的访问都没有冲突, 因此也就不需要挂起等待, 所有线程均可以在不停顿的情况下执行。 多线程情况下的冲突是难免的,...

2019-11-06 01:59:26 240

原创 【高并发程序设计】 ThreadLocal

上一篇【高并发程序设计】锁优化 探讨的是通过控制资源访问来保证线程安全。这一篇我们换个思路,通过增加资源来保证线程的安全: TreadLocal。1. 简单使用顾名思义,ThreadLocal是线程的局部变量, 被线程独享, 那么自然而然其是线程安全的。首先我们看一个简单的例子, 看一下下面的代码。public class ThreadLocalDemo { priva...

2019-11-02 16:53:34 190

原创 【高并发程序设计】锁优化

锁是最常用的同步方法之一。 在高并发环境下, 激烈的锁竞争会导致程序性能下降, 所以非常有必要讨论一下锁的性能问题以及相关的注意事项,如: 避免死锁、减小锁力度、锁分离等。需要明确一点, 多核场景下, 使用多线程虽然可以提高系统性能, 但同时也会增加额外的系统开销, 如维护线程本身的元数据、线程调度、上下文切换等。1. 提高锁性能的建议锁竞争过程会导致系统性能下降, 为了将多线程的这种...

2019-10-30 14:39:55 351

转载 聊聊并发(二)Java SE1.6中的Synchronized

1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2 术语定义术语 英文 说明 CAS ...

2019-10-29 15:38:14 94

原创 安装 CentOS 6.6

从业多年,之前一直在Windows环境下混,微软的各种傻瓜式操作使自己都不敢妄称“程序猿”。近期由于工作需要,开始在Linux上做一些东西。遂将整个过程记录下来,以备后用/他人用。本文讲的主要是Linux系统的安装,基于CentOS 6.6,以图片为主。1. 语言2. 键盘选择3. 设备类型4. 安装类型5

2015-08-04 10:25:57 333

原创 C#中判断远端服务器可达

private static bool CheckConnection(Uri serverUri) { var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try {

2013-11-16 19:27:18 787

原创 VC2005-应用程序正常初始化失败-0xc0150002

今天将完成的程序放到干净的环境进行测试,启动程序时得到了The application failed to initialize properly(0xc0150002)的错误,在网上查了很多资料才得以解决,具体解决方式如下:1. 检查应用程序的manifest文件中dependentAssembly的引用版本,如下: 2. 在开发环境中的VC200X中找

2012-06-14 15:26:19 2882

原创 C++ LNK2019

这两天在做C++的socket相关内容,之前一直很正常,今天突然报以下错误:error LNK2019: unresolved external symbol __imp__select@20 referenced in function _mainfatal error LNK1120: 1 unresolved externals经排查,需要为项目指定lib(Ws2_32.lib)

2012-06-07 19:46:15 1010

原创 利用SMTP发送邮件(C#)

近期有个项目需要把软件的错误信息以邮件形式发给指定管理员邮箱,过程中遇到了一些小问题可以记录下来以供参考。首先是代码: private void SendEmail(Email f) { try { if (mSmtpIPAddress.Length > 0 && !string.IsNullO

2012-05-09 17:48:07 2101

原创 一、设计模式——简单工厂模式

平时的开发工作中,经常会用到简单工厂模式。1. 简要介绍        简单工厂模式通过一个工厂对象(类)来决定创建何种产品类的实例。该模式封装了"在不同情况下使用不同具体类对象"的变化,客户端通过统一的接口调用,获取"具体类"的超类对象,从而屏蔽了具体类中实现细节的差异。故具体类的变化,并不会影响到客户端的调用代码。2. 拓扑结构

2011-12-29 13:10:34 427

原创 面向对象原则

首先是设计模式的三个基本原则:1. 针对接口编程,而不针对具体实现编程。针对接口编程,可以使各个实体(模块、对象)之间的耦合性更松,只要保证接口的稳定性,那么依赖接口的各方发生变化时,均不会影响其他模块。2. 优先使用对象组合而不是继承由于继承中父类和之类之间的层次关系存在,因此若对父类行为做修改,则很有可能影响到子类。例如对父类接口进行扩展,则子类也必须做相应变化。这就违反了设计

2011-12-27 15:06:58 275

原创 Regex的小用法

string str = "";Match m = Regex.Match(str, "(?start]*)(?end/"/?>)");string start = m.Groups["start"].ToString();string end = m.Groups["end"].ToString();string match = m.ToString();string

2009-08-04 22:49:00 393

转载 通俗易懂客户端与服务器端交互原理

 HTTP 介绍 1.HTTP 是一种超文本传送协议(HyperText Transfer Protocal),是一套计算机在网络中通信的一种规则。在TCP/IP体系结构中,HTTP 属于应用层协议,位于TCP/IP协议的顶层. 2.HTTP 是一种无状态的协议,意思是指在WEB浏览器客户端 和WEB服务器之间不需要建立持久的连接。整个过程就是当一个客户端向服务器端发送一个请求 request ,

2009-07-18 13:30:00 1444

原创 C#.NET下连接DB2数据库的连接字符串

 string strConnForDB2 = "Provider=IBMDADB2;HostName=10.10.12.108;Database=STMA;uid=db2admin;pwd=db2admin;protocol=TCPIP;port=50000;";  注意: 连接DB2,首先需要下载并安装DB2驱动程序,用来提供.NET中DB2的提供程序。上面的连接字符串含义如下:

2009-07-16 09:56:00 6259 1

转载 关于Assembly【C#】

l         场景你是 Adventure Works 公司的开发人员,当前你需要创建一个应用程序,以报告由该公司开发人员编写的代码。该应用程序将加载一个程序集并使用反射来生成要用于代码评审和文档化的报告。要改进性能,需要将该应用程序创建为控制台应用程序。在本练习中,将使用 Assembly 类加载程序集,而程序集名称和路径应由用户提供。  你希望创建一个对不同应用程序中编写的代码进行文

2008-07-31 15:33:00 2061

原创 通用进度条的设计与实现【C#】

 首先,通用进度条类的实现 public partial class ProgressShow : Form { #region 变量、属性 /// /// 窗口的返回值 /// private DialogResult _dialogResult; ///

2008-07-28 12:23:00 3013 3

原创 判断字符串是否为数字函数,正则表达式【C#】

public static bool IsNumber(String strNumber) { Regex objNotNumberPattern = new Regex("[^0-9.-]"); Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[

2008-07-28 11:57:00 1187

C# COM+

很经典的COM+编程书籍

2008-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除