Unsafe介绍及CAS原理解析 编程技术

Unsafe介绍及CAS原理解析

0.Unsafe介绍 JavaDoc说, Unsafe提供了一组用于执行底层的,不安全操作的方法。那么具体有哪些方法呢,我画了一张图。 可以看到Unsafe中提供了CAS,内存操作,线程调度,本机信息,Class相关方法,查看和设置某个对象或字段,内存分配和释放相关操作,内存地址获取相关方法。我自己抽空对上述方法进行了注释, 你可以在 这里看到 。 那么如何使用Uns...
阅读全文
从linux内核理解Java怎样实现Socket通信 编程技术

从linux内核理解Java怎样实现Socket通信

前言 前段时间买本书研究了 TCP/IP 通信,弄清楚了计算机之间是怎么通信的。网络通信的的基础就是 TCP/IP 协议簇 ,也被称为 TCP/IP 协议栈 ,也被简称为 TCP/IP 协议 。 TCP/IP 协议 并不是只有 TCP 和 IP 协议,只是这俩用的比较多,就用这两个起的名字。 我们目前使用的 HTTP , FTP , SMTP , DNS , HTTPS , SSH ...
阅读全文
httpquartz一个基于quartz.net的http远程调度系统 Java

httpquartz一个基于quartz.net的http远程调度系统

开发中总是会定时执行一些程序,这个时候任务调度系统总是少不了的,说起任务调度,就不得不说Quartz.NET ------一个.NET 版的任务调度框架。 之前写过一个TaskCaller,不过不是基于Quartz的,没有Quartz的功能强大,这段时间由基于Quartz.net重新写了一个httpquartz,文档如下: 项目说明 基于Quartz.Net、Polly的Http远程调度...
阅读全文
【译】使用AWS Lambda 为 Serverless 架构下的静态网站做基础认证 编程技术

【译】使用AWS Lambda 为 Serverless 架构下的静态网站做基础认证

译者前言 本篇文章主要介绍如何通过 AWS 中的 CloudFront 以及 Lambda 实现简单的无服务器架构( Serverless )网站下的 Basic 鉴权,在理解架构之后不难,但是想锻炼下自己的英文阅读能力,于是翻译了一下原博文。 原文链接: https://douglasduhaime.com/posts/s3-lambda-auth.html 原作者: d...
阅读全文
tomcat init启动脚本 编程技术

tomcat init启动脚本

tomcat bin目录下已经有了启动、关闭的脚本,写这个脚本主要是为了方便自动化运维,把tomcat和jdk推到服务器上解压后,把这个脚本传到PATH目录下,改个名字,给个执行权限就可以了,可以少设置很多东西,同时功能更加丰富。主要有以下几点功能: 只需配置JDK目录和tomcat目录即可,无需设置全局JDK环境变量和setenv.sh 可以指定tomcat启动运行的用户 系统中...
阅读全文
在 worker service 中使用 quartz.net 编程技术

在 worker service 中使用 quartz.net

以下示例基于 Quartz.Net 3.0.7(在最新的 3.1-beta2 中已经包含了支持 Microsoft DI 的方法) 在 worker service 中,通过官网示例,会发现 quartz.net 并未生效,究其原因系 DI 未注入导致,原生 quartz.net(3.0.7)是通过 CreateInstance 来创建实例的,本文旨在解决在 Worker Servic...
阅读全文
Netty学习系列(六)-编、解码器 编程技术

Netty学习系列(六)-编、解码器

这篇文章应该是Netty专栏的倒数第二篇文章了,下一篇就是对整个Netty的总结。本篇文章主要讲Netty的编码器和解码器,他们两个定义和作用根据他们的名字很快就能了解。这里我们就开始分析吧。 一 解码器 在Netty中对于服务端来说收到的是一个 二进制数据流 ,然后解码器的作用就是将这个数据流通过一定的 解码规则 将这个二进制流解码成一个个 ByteBuf ,然后仍给业务做处理。在本...
阅读全文
SpringBoot实现定时任务的动态增删启停 编程技术

SpringBoot实现定时任务的动态增删启停

我以为动态停启定时任务一般用quartz,没想到还可以通过ScheduledTaskRegistrar来拓展。但是分布式场景,建议还是用quartz吧! 在 spring boot 项目中,可以通过 @EnableScheduling 注解和 @Scheduled 注解实现定时任务,也可以通过 SchedulingConfigurer 接口来实现定时任务。但是这两种方式不能动态添加、删除、启动...
阅读全文
Loading...