3 Dongguabai

尚未进行身份认证

暂无相关简介

等级
TA的排名 1k+

Linux C 编程基础之信号机制(一)

相关文章从 Java 程序优雅停机到 Linux 信号机制初窥在之前的一篇文章中简单分析了 Java 程序和 Linux 信号机制的处理。其中提到了 Linux 对信号的处理,但是感觉对这部分的理解还是不行,经过重新分析学习后,在这里进行记录。基本前提什么是信号首先看,什么是信号:信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间唯一的一步通信方式。这个是《Linux C 编程实战》的一段描述,要注意的就是不能直接说信号就是一种中断,只能说信号的响应..

2020-05-31 15:43:10

Linux 下关于 printf 与 sleep 一起运行的困惑

问题是这样的:#include <stdio.h><br />int main()<br />{<br />while(1)<br /> {<br /> sleep(1);<br /> printf("hello/n");<br /> }<br />return 0;<br />} 运行成功,每隔一秒输出一个hello并换行~#include

2020-05-31 11:07:38

Mac 屏幕色温一直变化

早上发现屏幕色温一直变化,找了好久,发现需要设置“关闭原彩显示”,这里记录下:

2020-05-29 09:36:20

BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/

今天处理一个历史老项目的时候,我修改了一个类,出现了这样的异常:[INFO]2020-05-28 15:27:48 [main] org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(210) | JSR-330 'javax.inject.Named' annotation found and supported for component s

2020-05-28 15:36:52

自己动手调试 JDK(CLion)

相关文章从 Java 程序优雅停机到 Linux 信号机制初窥自己动手编译 JDK(MacOS)昨天已经可以自己编译 JDK 了。但是很明显还缺一个重要的环节,那就是调试 JDK。调试 JDK 有朋友说可以使用 GDB,但是对于我们应用层开发者来说,使用 IDE 进行调试可能会习惯点,而且交互更加友好。经过对比 VS Code、Xcode 和 CLion。最终选择了 CLion。CLion 官方下载地址:https://www.jetbrains.com/clion/在 CLion 中引入 O

2020-05-28 14:34:25

自己动手编译 JDK(MacOS)

相关文章从 Java 程序优雅停机到 Linux 信号机制初窥去年就尝试过自己编译 JDK,但是失败了,最近在分析 Java 虚拟机是如何处理 Linux 信号的时候,虽然大体流程清晰了,但是还是有很多方面无法理解,所以编译调试 JDK 势在必行。我的操作系统版本:macOS Catalina 10.15.5。安装 XCode 和 Commnad Line Tools for XCode这个应该是可以不安装的,但是为了避免出现依赖问题,我还是安装了。安装版本:11.5 (11E608c)。

2020-05-27 16:21:03

Dubbo 源码构建

代码签出通过以下命令可以签出最新的项目源码git clone https://github.com/apache/dubbo.git dubbo也可以在也可以直接在https://github.com/apache/dubbo上浏览源代码分支我们使用master作为主干版本开发,使用分支作为维护版本,可以通过https://github.com/apache/dubbo/tags来查看所有版本的标签构建dubbo使用maven作为构建工具官网要求:jdk:1.5以上:...

2020-05-26 09:26:43

JVM安全退出(如何优雅的关闭java服务)

上线!重启!你还在为丢失任务而烦恼么?看这里看这里,从此不再丢任务,JVM可以安全退出的在交易流程中,为了提升服务的性能,我们做了一些异步化的优化,比如更新用户最近使用的收货地址、提单完成后通过MQ去发送各种通知类消息、清理用户的购物车等等这些操作,异步化加快了应用的响应速度同时也带来一个隐患,如何保障异步操作的执行?这个场景主要发生在应用重启时,对于通过线程或线程池进行的异步化,JVM重启时,后台执行的异步操作可能尚未完成。这时,需要通过JVM安全关闭来保证异步操作进行完成后,JVM再执行关闭。更广

2020-05-24 02:02:19

从 Java 程序优雅停机到 Linux 信号机制初窥

前不久,公司内部使用的一个 RPC 框架支持了优雅退出。优雅退出是很多框架非常重要的特征,在 Java 中是使用 Runtime.addShutdownHook 方法去注册关闭的钩子(Runtime 类代表了当前 JVM 进程的运行环境)。The Java virtual machine shuts down in response to two kinds of events:The program exits normally, when the last non-daemon thread

2020-05-24 01:57:06

Linux 中 dig 命令返回结果解释

dig baidu.com 返回下面说明各项意义:; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> baidu.com;; global options: printcmddig程序的版本号,和要查询的域名Dig的部分输出告诉我们一些有关于它的版本信息(version 9.2.3)和全局的设置选项,如果+nocmd在命令行下是第一个参数的话,那么这部分输出可以通过加+nocmd的方式..

2020-05-23 00:53:05

Socket 基础之超时时间

平时经常会听到“连接超时”、“Socket 超时”,那么到底是什么超时呢。以我们目前内部使用的调度任务为例,有时候会收到这样的调度异常邮件:在 xxxx,Exception to request execution plan:java.net.SocketTimeoutException:connect timed out有时候会收到这样的:在 xxxx,Exception to request execution plan:java.net.SocketTimeoutException:Read

2020-05-23 00:36:12

关于IDEA 报Error:java:无效的源发行版13

很多相关的编译异常都可以按照这个方法处理。--------------------------------------------------------首先打开自己的项目,点击File–>Settings进入界面找到如图位置 并将相信应位置设置成自己的安装版本号,以我为列:1.8版本别忘了点击OK.下一步,点击File选择Project Structure…进入。继续(还是看自己的安装版本)继续(还是看自己的安装版本)设置完成后,别忘了ok.在运行下...

2020-05-22 09:35:55

MySQL 创建表的时候,添加字段注释

#创建表的时候写注释CREATE TABLE userinfo( id INT COMMENT '编号', uname VARCHAR(40) COMMENT '用户名', address VARCHAR(120) COMMENT '家庭住址', hobby VARCHAR(200) COMMENT '爱好' )COMMENT = '用户信息表'; #修改表的注释ALTER TABLE userinfo COMMENT '用户信息资料表'; #修改字段的注释,注意:字段名和字段类型.

2020-05-21 13:40:58

Java 线程 UncaughtExceptionHandler 异常处理机制

先看一个例子:public static void main(String[] args) { try { new Thread(() -> { int i = 1/0; }).start(); }catch (Throwable e){ System.out.println("error..."); } }输出结果:Exception

2020-05-21 13:01:38

关于 Spring 中的 FactoryBean

一般我们会使用如 XML、@Bean、@Componet 等方式去注册,但是如果在 Bean 的实例化过程非常复杂,如有很多逻辑处理、层层依赖、复杂依赖等,这在第三方整合的时候尤为重要。FactoryBean 是 Spring 提供的基于接口编码的方式帮助我们向 Spring 容器中注册组件,相比注解和配置,更加灵活。最常见的比如 MyBatis 与 Spring 整合,这是从我之前学习 MyBatis 的笔记中截取的相关配置:FactoryBean 接口有三个方法:public interface

2020-05-20 12:43:21

Spring 用了哪些设计模式?

1. 策略模式 2. 工厂方法模式 3. Builder模式 4. 小结 关于设计模式,如果使用得当,将会使我们的代码更加简洁,并且更具扩展性。本文主要讲解Spring中如何使用策略模式,工厂方法模式以及Builder模式。1. 策略模式关于策略模式的使用方式,在Spring中其实比较简单,从本质上讲,策略模式就是一个接口下有多个实现类,而每种实现类会处理某一种情况。我们以发奖励为例进行讲解,比如我们在抽奖系统中,有多种奖励方式可供选择,比如积分,虚拟币和现..

2020-05-15 22:07:57

html 引入 icon 图标

http://www.iconfont.cn/我们引入icon都喜欢阿里的矢量图标库阿里的图标库也是可以下载为图片的当然下载图片不是我们想要的,我们想要的是字体第一种方法,本地使用首先我们选择自己想要的icon 添加入库点击下载代码,会自动下载一个压缩文件,解压之后将文件里的所有内容转移到自己项目的css文件夹下主要是文件中的iconfont.css文件,我们看看里面的内容给大家分析一下@font-face {font-family: "iconfo

2020-05-15 21:52:10

关于(历史)系统多租户设计的后续

相关文章:ThreadLocal 系列之 TransmittableThreadLocal基于 MyBatis 实现多租户数据隔离的实践因为某些原因,临近上线前我们调整了方案,即使用多数据源的方案去对系统进行多租户改造,这也是《基于 MyBatis 实现多租户数据隔离的实践》中与各位伙伴讨论的相对好的方案。这样改造过程平滑,两种方案(数据合并方案和多数据源方案)的风险、操作难度不在一个数量级。虽然多数据源方案相对简单很多,但还是要注意一些问题。这里将一些问题记录一下。(历史)系统多数据源配置

2020-05-14 16:38:40

Mac 下 Visual Studio 设置中文

macOS 快捷键:command + shift + p输入搜索 configure language1.Ctrl+Shift+P 打开命令 2.搜索 Configure Display Language 将这里的“en”(英文)改为“zh-CN”(中文) 我这里版本是1.27需要自己去商店(marketplace)里下载语言包后再重启。 可通过上图注释中的网址进入商店,或直接访问 https://marketplace.visualstudio.com/search?targ...

2020-05-12 23:42:03

设计模式之简单工厂模式

简单工厂模式也叫静态工厂模式,不属于 GOF 23 种设计模式。这个模式其实很简单,但是我觉得从这个模式中学到的最重要的是要逐渐锻炼出“设计模式”的思维,即不要仅仅局限在一个类上面。这时候就要想起那道经典的面试题了:面向对象的三个基本特征?封装、继承、多态简单工厂模式就是将创建对象(产品)实例的过程交由工厂类去实现,即将 new 的过程进行了封装,工厂类根据传入的参数返回不同的产品实例,而这些产品实例有统一的父类。就好比现在有“某些场景下尽可能的少用 if else” 的说法,并不是说真的可以完全

2020-05-09 17:24:44

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。