highlighter

java子线程中获取父线程的threadLocal中的值

六眼飞鱼酱① 提交于 2020-04-13 16:19:07
【今日推荐】:为什么一到面试就懵逼!>>> 一、java子线程中获取父线程的threadLocal中的值 threadLocal可以做线程级的数据隔离,那如何在子线程中获取父线程的值呢? 可以使用InheritableThreadLocal /** * Java子线程获取父线程的threadLocal中的值 */ public class ThreadDemo1 { public static final InheritableThreadLocal<String> inheritableThreadLocal = new InheritableThreadLocal<>(); public static final ThreadLocal<String> threadLocal = new ThreadLocal<>(); public static void main(String[] args) throws Exception { inheritableThreadLocal.set("inheritableThreadLocal hello"); threadLocal.set("threadLocal world"); new Thread(()->{ System.out.println(String.format("子线程可继承值:%s",

ASP.NET Core技术研究-探秘依赖注入框架

折月煮酒 提交于 2020-04-13 16:02:28
【今日推荐】:为什么一到面试就懵逼!>>> ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务、提供服务。依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者。 毫不夸张的说,ASP.NET Core通过依赖注入实现了各种服务对象的注册和创建,同时也实现了面向抽象的编程模式和编程体验,提升了应用程序的扩展性。 今天,我们普及一下ASP.NET Core中依赖注入的一些基本知识。 一、服务的注册 我们通过创建一个ASP.NET Core的项目,可以发现在Startup.cs 类中,有一个方法 ConfigureServices ,这个方法的注释是这样的: This method gets called by the runtime. Use this method to add services to the container. 在ConfigureServices方法中我们可以将通过ASP.NET Core内置的依赖注入框架实现服务的的注册。 这个方法有个参数:IServiceCollection,见名知意,服务集合。 ASP.NET Core内置的依赖注入框架将服务注册信息存储到一个实现了IServiceCollection接口的对象中。默认情况下这个接口的实现类是ServiceCollection,以下是这个类的说明:

015你所常见的日常英语

眉间皱痕 提交于 2020-04-13 14:33:13
【今日推荐】:为什么一到面试就懵逼!>>> 一、打电话 (1)您拨打的电话正在通话中,请稍后再拨! The subscribe you dialed is busy now, please redial it later. (2)您拨打的电话为空号,请核对后再拨!!! The number you have dailed is not at service, please check the number and redial it again (3)您所拨打的电话已关机!!! The phone you are calling is powered off. 来源: oschina 链接: https://my.oschina.net/u/4355739/blog/3232654

Redis持久化机制

淺唱寂寞╮ 提交于 2020-04-13 13:46:58
【今日推荐】:为什么一到面试就懵逼!>>> 博客地址: https://tech101.cn/2020/03/05/Redis%E6%8C%81%E4%B9%85%E5%8C%96%E6%9C%BA%E5%88%B6 前言 Redis是一款纯C语言编写的符合ANSI C标准实现的内存数据库。Redis以支持丰富的内存数据结构和高性能著称,在互联网行业中被广泛用于缓存数据和内存计算。 虽然Redis是一款内存数据库,但是它也提供了数据持久化的能力。本文,我们就来聊聊Redis的数据持久化机制。 持久化面临的问题 在正式开始介绍Redis持久化功能之前,我们先来看下实现持久化能力需要面临的一些技术问题。 当客户端请求Redis服务端将数据写入Redis数据库的时候,数据将被存放在内存中。如果Redis数据库启用了持久化功能,那么数据将被持久化到持久化设备(磁盘)上。从客户端请求服务端写入数据到数据被持久化到磁盘上,整个过程需要经历如下几个阶段 1 : 客户端向服务端发起写命令。 服务端接收到客户端请求,执行写命令将数据写入内存。 服务端调用 write() 系统调用(Unix环境)将内存中的数据写入内核缓冲区。 调用 fsync() 将内核缓冲区的数据写入磁盘控制器的缓存中。 磁盘控制器将缓存中的数据写入到磁盘的物理介质上。 在上面列出的5个步骤中,第1步到第3步数据都在内存中存放

Redis持久化机制

徘徊边缘 提交于 2020-04-13 13:42:24
【今日推荐】:为什么一到面试就懵逼!>>> 博客地址: https://tech101.cn/2020/03/05/Redis%E6%8C%81%E4%B9%85%E5%8C%96%E6%9C%BA%E5%88%B6 前言 Redis是一款纯C语言编写的符合ANSI C标准实现的内存数据库。Redis以支持丰富的内存数据结构和高性能著称,在互联网行业中被广泛用于缓存数据和内存计算。 虽然Redis是一款内存数据库,但是它也提供了数据持久化的能力。本文,我们就来聊聊Redis的数据持久化机制。 持久化面临的问题 在正式开始介绍Redis持久化功能之前,我们先来看下实现持久化能力需要面临的一些技术问题。 当客户端请求Redis服务端将数据写入Redis数据库的时候,数据将被存放在内存中。如果Redis数据库启用了持久化功能,那么数据将被持久化到持久化设备(磁盘)上。从客户端请求服务端写入数据到数据被持久化到磁盘上,整个过程需要经历如下几个阶段 1 : 客户端向服务端发起写命令。 服务端接收到客户端请求,执行写命令将数据写入内存。 服务端调用 write() 系统调用(Unix环境)将内存中的数据写入内核缓冲区。 调用 fsync() 将内核缓冲区的数据写入磁盘控制器的缓存中。 磁盘控制器将缓存中的数据写入到磁盘的物理介质上。 在上面列出的5个步骤中,第1步到第3步数据都在内存中存放

使用Putty登录亚马逊云主机

帅比萌擦擦* 提交于 2020-04-13 11:01:15
【今日推荐】:为什么一到面试就懵逼!>>>   亚马逊云主机配置之后会提示 提供一个 pem证书, 打开 SSH 客户端。(了解操作方法 使用 PuTTY 连接) 找到您的私有密钥文件(test001.pem)。向导会自动检测您用于启动实例的密钥。 您的密钥必须不公开可见,SSH 才能工作。如果需要,请使用此命令:chmod 400 test001.pem 通过其 公有 DNS 连接到您的实例:ec2-00-00-00-000.cn-north-1.compute.amazonaws.com.cn 示例:ssh -i "test001.pem" ubuntu@ec2-00-00-00-000.cn-north-1.compute.amazonaws.com.cn 请注意,在大多数情况下,上述用户名都是正确的,但请确保您已阅读了 AMI 使用说明以确定 AMI 所有人没有更改默认的 AMI 用户名。    对于Linux用户的话,可以直接使用如上的方式进行登录,对于Window下使用putty登录的用户,可以按照如下方式进行配置 Host Name 中输入 获取到的主机域名 再putty的 Conection -SSH -Auth - Private key file authentication: 中选择提供的 test001.pem 会出现如下的异常,提示对应的pem,需要转化下

使用Putty登录亚马逊云主机

微笑、不失礼 提交于 2020-04-13 09:07:25
  亚马逊云主机配置之后会提示 提供一个 pem证书, 打开 SSH 客户端。(了解操作方法 使用 PuTTY 连接) 找到您的私有密钥文件(test001.pem)。向导会自动检测您用于启动实例的密钥。 您的密钥必须不公开可见,SSH 才能工作。如果需要,请使用此命令:chmod 400 test001.pem 通过其 公有 DNS 连接到您的实例:ec2-00-00-00-000.cn-north-1.compute.amazonaws.com.cn 示例:ssh -i "test001.pem" ubuntu@ec2-00-00-00-000.cn-north-1.compute.amazonaws.com.cn 请注意,在大多数情况下,上述用户名都是正确的,但请确保您已阅读了 AMI 使用说明以确定 AMI 所有人没有更改默认的 AMI 用户名。    对于Linux用户的话,可以直接使用如上的方式进行登录,对于Window下使用putty登录的用户,可以按照如下方式进行配置 Host Name 中输入 获取到的主机域名 再putty的 Conection -SSH -Auth - Private key file authentication: 中选择提供的 test001.pem 会出现如下的异常,提示对应的pem,需要转化下 Unable to use key

.NET Core技术研究-最实用最常用的配置读取方式

可紊 提交于 2020-04-13 08:02:40
原文: .NET Core技术研究-最实用最常用的配置读取方式 升级ASP.NET Core后,配置的读取是第一个要明确的技术。原先的App.Config、Web.Config、自定义Config在ASP.NET Core中如何正常使用。有必要好好总结整理一下,相信大家都会用到。 首先,看一下ASP.NET Core中的配置提供程序(Configuration Providers): 一、配置提供程序(Configuration Providers) ASP.NET Core 使用一个或多个配置提供程序来读取配置: 应用程序设置文件(配置文件),例如appsettings.json 环境变量:Environment variables 命令行参数:Command-line arguments 自定义的配置提供程序 目录文件 内存中的.NET对象(内存中的配置类) Azure Key Vault,详细说明参考这个连接:https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.0&tabs=windows Azure应用程序配置:Azure App Configuration 我们通过下面的代码,输出配置提供程序的加载顺序: ? 1 2 3 4 5 var configRoot

028_同步本地git项目到github和码云

喜你入骨 提交于 2020-04-13 07:59:03
需求: 由于github在国内经常访问巨慢,原因你懂得,所以就有了同步一份代码到码云(作用同github)的需求. 一、操作 使用多个远程库时,我们要注意,git给远程库起的默认名称是 origin ,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。 (1)git remote -v #查看远程仓库信息 origin https://gitee.com/arunyang/FrontendTest.git (fetch) origin https://gitee.com/arunyang/FrontendTest.git (push) (2)git remote rm origin #删除默认已关联的名为origin的远程库 (3)git remote add gitee git@gitee.com:arunyang/FrontendTest.git #关联Gitee的远程库 ➜ FrontendTest git:(master) git remote -v gitee git@gitee.com:arunyang/FrontendTest.git (fetch) gitee git@gitee.com:arunyang/FrontendTest.git (push) (4)git remote add github git@github.com:itcomputer12

.NET Core技术研究-中间件的由来和使用

倖福魔咒の 提交于 2020-04-13 07:50:03
原文: .NET Core技术研究-中间件的由来和使用 我们将原有ASP.NET应用升级到ASP.NET Core的过程中,会遇到一个新的概念: 中间件。 中间件是ASP.NET Core全新引入的概念。 中间件是一种装配到应用管道中以处理请求和响应的软件。 每个组件: 选择是否将请求传递到管道中的下一个组件。 可在管道中的下一个组件前后执行工作。 单独看以上中间件的定义,一个很直观的感觉:中间件是HTTP请求管道中的一层层的AOP扩展。 在展开介绍中间件之前,我们先回顾一下ASP.NET中HttpHandler和HttpModule的处理方式。 一、ASP.NET中HttpHandler和HttpModule 先看一张图: 上图中有两个概念HttpHandler和HttpModule,其中: HttpHandler 用于处理具有给定文件名或扩展名的请求。比如上图中的.report类的请求,同时,任何一个HttpHandler都需要实现接口IHttpHandler,都需要在Web.Config配置文件中注册使用。 HttpModule 用于处理每个请求调用,比如上图中的Authorization Module,每个Http请求都会经过HttpModule的处理。通过HttpModule可以中断Http请求,可以自定义HttpResponse返回。同时