Hxysayhi

  • Home

  • Archives

  • Game

Linux CGroup学习

Posted on 2020-02-24 | Edited on 2020-02-25 | Comments:

Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是由Google的工程师在2006年发起(主要是Paul Menage和Rohit Seth),最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词太过广泛,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中去。

Linux CGroupCgroup 可​​​让​​​您​​​为​​​系​​​统​​​中​​​所​​​运​​​行​​​任​​​务​​​(进​​​程​​​)的​​​用​​​户​​​定​​​义​​​组​​​群​​​分​​​配​​​资​​​源​​​ — 比​​​如​​​ CPU 时​​​间​​​、​​​系​​​统​​​内​​​存​​​、​​​网​​​络​​​带​​​宽​​​或​​​者​​​这​​​些​​​资​​​源​​​的​​​组​​​合​​​。​​​您​​​可​​​以​​​监​​​控​​​您​​​配​​​置​​​的​​​ cgroup,拒​​​绝​​​ cgroup 访​​​问​​​某​​​些​​​资​​​源​​​,甚​​​至​​​在​​​运​​​行​​​的​​​系​​​统​​​中​​​动​​​态​​​配​​​置​​​您​​​的​​​ cgroup。

Read more »

fork与 vfork, exit与 _exit

Posted on 2019-07-29 | Comments:

引言

在linux下,进行多进程相关编程的时候,会使用到fork系列函数。其中fork()和vfork()存在哪些区别?

exit()可以终止调用进程,不执行exit()后的代码,那 _exit() 与 exit() 的区别在哪里?为什么建议在fork出的子进程中使用_exit()退出,而非使用exit()退出?

Read more »

linux进程和waitpid

Posted on 2019-07-22 | Comments:

进程在自己的生命周期中,会处于不同的状态,其所处的状态会随着一些触发条件发生转变。使用ps和top等命令查看进程信息时,可以看到关于进程状态的相关信息,通常是在名为S的一列中使用进程状态码(PROCESS STATE CODES)表示。

在ps的文档中,PROCESS STATE CODES相关的描述如下:

Read more »

spring Scheduled

Posted on 2019-05-28 | Comments:

@Scheduled

Spring 提供了 @Scheduled 注解来实现 定时任务,@Scheduled() 参数可以接受 两种 定时的设置,一种是我们常用的 格林时间表达式 cron = "*/10 * * * * *",另一种是 fixedRate = 10 * 1000L,(给出的两个例子都表示每隔 10 秒执行一次目标任务)。

在 Spring Boot 入口类 或者 定时任务函数所在类 上配置 @EnableScheduling 注解开启 Spring 自带的定时处理功能。

使用该注解时,默认是基于单线程的任务调度。如何实现多线程的任务处理?下面提供两种参考方案。

Read more »

spring Async

Posted on 2019-05-28 | Comments:

@Async

在Spring中,我们可以使用@Async注释来使用异步。知道@Async的工作原理及其局限性,才能进行正确有效地使用。

@Async的工作原理

当在方法上添加Async注解,它会根据proxyTargetClass属性创建该对象的代理,其中定义了Async(JDK代理/ CGlib)。 然后,Spring尝试查找与上下文关联的线程池,以将此方法的逻辑作为单独的执行路径提交。确切地说,它搜索唯一的TaskExecutor bean或指定名字的Executor bean。如果找不到,则使用默认的SimpleAsyncTaskExecutor。

此外,需要在spring boot入口类 或者 异步方法所在的类 上配置 @EnableAsync 注解开启异步处理。

Read more »

Disqus和velocity导致页面空白

Posted on 2019-03-11 | Edited on 2019-05-28 | Comments:

使用Hexo NexT主题搭建的博客,突然出现页面内容空白、不可见的问题。发现同时使用Disqus和velocity时就会出现此问题(之前同时使用并未发生异常),作记录如下。

问题描述

使用的博客框架是Hexo,使用的主题是NexT。

问题表现为:博客页面内容不可见,但是内容其实存在,可以点击链接跳转(虽然看不见链接),查看网页源码也发现是有内容的。

页面存在error:

1
2
3
4
5
6
Uncaught TypeError: $(...).velocity is not a function
at menu (motion.js:295)
at Object.next (motion.js:197)
at Array.sequence.(:4000/anonymous function).o.complete (http://localhost:4000/js/src/motion.js?v=7.0.1:279:22)
at p (velocity.min.js:3)
at c (velocity.min.js:3)
Read more »

Note about Shell script

Posted on 2019-03-09 | Edited on 2019-03-10 | Comments:

this is my learning note
这是我的学习笔记

数据类型

1
2
#!/bin/bash
echo "Hello World !"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。使用readlink -f $(which sh)可查看系统默认sh是什么shell。

赋予脚本执行权限后,可直接运行,执行脚本时,若脚本在当前目录下,应该使用./my_test.sh而非my_test.sh,因为使用my_test.sh时,linux 系统会去 PATH 里寻找my_test.sh。

Read more »

Java 中调用栈为空的NullPointerException

Posted on 2019-03-01 | Edited on 2019-07-22 | Comments:

问题表现

在运行java项目时,出现了调用栈为空的NullPointerException:

1
2
3
4
5
{
"@type": "java.lang.NullPointerException",
"stackTrace": [],
"suppressed": []
}

原因分析

所使用的JVM中的HotSpot为了提升性能对代码进行了优化,导致抛出了无调用栈的异常。

由于代码在运行中频繁触发某处代码,抛出空指针异常,触发了HotSpot的优化机制,将该方法进行了重新编译。重新编译时编译器使用不提供堆栈跟踪的预分配异常来提升性能。因而导致了无调用栈的NullPointerException的出现。

Read more »

i=i++ 到底发生了什么?

Posted on 2019-02-22 | Edited on 2019-07-22 | Comments:

在java和C++中都支持++操作,那么当执行i=i++时到底发生了什么呢?

1
2
3
4
int i = 0;
for(int j = 0; j < 3; j++){
i = i++;
}

这段代码执行之后,i的值为多少?

Read more »

C++ 代码覆盖率分析工具

Posted on 2019-02-20 | Edited on 2019-03-03 | Comments:

本文对C++相关的代码覆盖率分析工具进行调研,作出简要的总结


内容提要

  1. Squish Coco (收费)
  2. OpenCppConverage (开源)

Read more »
12
hxysayhi

hxysayhi

12 posts
15 tags
StackOverflow
© 2020 hxysayhi
Powered by Hexo v3.8.0
|
Theme – NexT.Gemini v7.0.1
|