.NET进阶篇06-async异步、thread多线程4
知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂 梯子 一、锁1、lock2、Interlocked3、Monitor4、SpinLock5、Mutex6、Semaphore7、Events1、AutoResetEvent2、ManualResetEvent3、ManualResetEvent ...
WebGL简易教程(十四):阴影
[toc] 1. 概述 所谓阴影,就是物体在光照下向背光处投下影子的现象,使用阴影技术能提升图形渲染的真实感。实现阴影的思路很简单: 1. 找出阴影的位置。 2. 将阴影位置的图元调暗。 很明显,关键还是在于如何去判断阴影的位置。阴影检测的算法当然可以自己去实现,但其实OpenGL/WebGL已经隐 ...
在Windows系统中构建还原ASP.NET Core 源码
大家好,这几天试着从Github上拉取AspNetCore的源码,尝试着通过Visual Studio 打开,但是并不尽人意。我们需要去构建我们拉去的源代码,这样才可以通过VisualStudio可还原的项目。毕竟AspNetCore是一个巨型的项目集。 先决条件 在Windows中构建AspNet ...
原创001 | 搭上SpringBoot自动注入源码分析专车
前言 如果这是你 第二次 看到师长的文章,说明你在觊觎我的美色!O(∩_∩)O哈哈~ 点赞+关注再看,养成习惯 没别的意思,就是需要你的窥屏^_^ 本系列为SpringBoot深度源码专车系列,第一篇发车! 专车介绍 该趟专车是开往Spring Boot自动注入原理源码分析的专车 专车问题 Spri ...
Stack Overflow上59万浏览量的提问:为什么会发生ArrayIndexOutOfBoundsException?
在逛 Stack Overflow 的时候,发现了一些访问量像昆仑山一样高的问题,比如说这个:为什么会发生 ?这样看似简单到不值得一问的问题,访问量足足有 69万+,这不得了啊!说明有不少的初级程序员被这个问题困扰过。实话实说吧, "我" 也有点吃不准为什么。 来回顾一下提问者的问题: 究竟意味着什 ...
SpringBoot使用拦截器、过滤器、监听器
[TOC] PS:原文链接 "https://www.www.ib765.com/haixiang/p/12000685.html" ,转载请注明出处 过滤器 过滤器简介 过滤器的英文名称为 Filter, 是 Servlet 技术中最实用的技术。如同它的名字一样,过滤器是处于客户端和服务器资源文件之间 ...
【github repo自荐】码农周刊一周精选分类
以下内容节选自我的 "github码农周刊整理repo" ,欢迎大家star。 写在最前面的话 作为最初的一批码农周刊的订阅者,不能说经历了其成长,但是确实见证了他的壮大。码农周刊确实从开始第一期的基本上都是精选的满满的干货,至少从我收到的每一期的一周精选看真是如此。但是随着时间的累计,一周精选的总 ...
使用HttpReports快速搭建API分析平台
HttpReports 简单介绍 HttpReports 是 .Net Core下的一个Web组件,适用于 WebAPI 项目和 API 网关项目,通过中间件的形式集成到您的项目中, 通过HttpReports,可以让开发人员快速的搭建出一个 API 性能分析的基础报表网站。 主要包含 HttpRe ...
告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎。 ...
伪共享 FalseSharing (CacheLine,MESI) 浅析以及解决方案
起因 在阅读百度的发号器 uid-generator 源码的过程中,发现了一段很奇怪的代码: 这里面有6个看上去毫无作用的volatile long变量(标红)。如果这是我自己写的代码,我肯定会认为是我自己手抖写多了。 但是作为百度的发号器,开源了这么久,如果是手抖早被fix了。肯定还是有深意的。于 ...
【小作业】为NLog自定义LayoutRenderer
长话短说 前文《解剖HttpClientFactory,自由扩展HttpMessageHandler》主要想讲如何扩展HttpMessageHandler, 示例为在每个Http请求中的日志中显示TraceId, 现在来完成课后的小作业: 将TraceId显示到Nlog的LayoutRenderer ...
【并发编程】Object的wait、notify和notifyAll方法
本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 "并发编程系列博客传送门" 方法简介 wait方法 wait方法是Object类中的一个方法。调用这个方法会让调用线程进入waiting状态,直到另一个线程调用了当前对象上的not ...
Redis系列(五):Redis的RESP协议详解
一、什么是RESP Redis是Redis序列化协议,Redis客户端RESP协议与Redis服务器通信。Redis协议在以下几点之间做出了折衷: 简单的实现 快速地被计算机解析 简单得可以能被人工解析 二、RESP协议描述 RESP协议在Redis 1.2中引入,但在Redis 2.0中成为与Re ...
mybatis精讲(五)--映射器组件
[TOC] 前言 映射器之前我们已经提到了,是mybatis特有的组件: java+xml组合的方式。对于Java类和xml的编写也很简单。值得注意的是需要将Java编写的mapper注册到mybatis中来。之前的注册的方式通过xml。到后续通过spirng来管理通过@Mapper就很方便了。 标 ...
一张图讲解单机FastDFS图片服务器安装步骤(修订版)
前面已经讲 "一张图秒懂微服务的网络架构" ,通过此文章可以了解FastDFS组件中单机安装流程。 单机版架构图 以下为单机FastDFS安装步骤 一、环境准备 CentOS 7.X "libfastcommon" 请采用最新版本, 本次使用最新版本: libfastcommon 1.0.42.ta ...
负数为什么要用补码来表示?
上篇文章讲了“负数在计算机中是怎么存储的”。看完之后,应该对原码,反码,补码有了基本的了解了。 今天,我们深入探讨一下,为什么计算机中要用补码来表示负数? 首先,我们应该清楚,原码是方便给人看的。看到一个数的原码,我们就能根据符号位和后边的二进制位,计算出这个数的实际值。为了简单起见,我以一个字节8 ...
node.js多进程架构
node.js是单进程应用,要充分利用多核cpu的性能,就需要用到多进程架构。 作为web服务器,不能多个进程创建不同的socket文件描述符去accept网络请求, 有经验的同学知道,如果端口被占用了,再跑一个监听该端口的服务就会报EADDRINUSE异常。那么问题来了,多进程架构如何去解决这个问 ...