1、概述 在阅读内核源码时,可以看到kthread_worker、kthread_work两个数据结构配合内核线程创建函数一起使用的场景。刚开始看到这块时,比较困惑,紧接着仔细分析源码后,终于弄清楚了其中的机制,也不由的感叹内核的设计者内功之深厚以及生活处处皆学问。其实,这块使用机制就是抽象了现实生 ...
分类:
其他好文 时间:
2021-03-31 12:26:35
阅读次数:
0
一、简介 使用MAT来分析内存问题,有一些门槛,会有一些难度,并且效率也不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比才能找到问题原因。 为了能够简单迅速的发现内存泄漏,Square公司基于MAT开源了LeakCanary 二、使用 在app build.gradle 中加入引用: dep ...
分类:
其他好文 时间:
2020-05-22 19:05:39
阅读次数:
66
一.LockSupport是什么 LockSupport是一个线程阻塞工具类,所有的方法都是静态方法,可以让线程在任意位置阻塞,当然阻塞之后肯定得有唤醒的方法。 Doug Lea 的神作concurrent包是基于AQS (AbstractQueuedSynchronizer)框架,AQS框架借助于 ...
分类:
其他好文 时间:
2020-05-18 12:39:04
阅读次数:
67
1. _KWAIT_BLOCK解析 struct _KWAIT_BLOCK { struct _LIST_ENTRY WaitListEntry; //0x0 同一可等待对象的下一个等待块 struct _KTHREAD* Thread; //0x8 等待线程 VOID* Object; //0xc ...
分类:
其他好文 时间:
2020-03-31 18:56:19
阅读次数:
85
java 并发包学习 1: ConcurrentHashMap: ConcurrentHashMap : 线程安全效率高于hashTable, jdk1.7中使用的是分段锁, 将数据分成多个hashTable,避免了多个线程竞争同一把锁,导致效率低下 在JDK1.7和JDK1.8中的区别: 在JDK ...
分类:
编程语言 时间:
2020-03-20 12:29:26
阅读次数:
71
搭建一个最简单的 Oauth2 认证服务基于 Springboot2,在 pom.xml 中引入 Oauth2:123456789101112 org.springframework.security.oauth spring-security-oauth2 2.3.3.RELEASE org.sp... ...
分类:
其他好文 时间:
2020-02-28 10:27:29
阅读次数:
159
Linux内核驱动定时微秒级别实现 #include <linux/module.h> #include <linux/kthread.h> #define TIMEOUT_HR 1000000 /* 1us */ static struct hrtimer etx_hr_timer; ktime_ ...
分类:
系统相关 时间:
2019-12-27 13:45:44
阅读次数:
154
前言 之前的文章中讲到,JMM是内存模型规范在Java语言中的体现。JMM保证了在多核CPU多线程编程环境下,对共享变量读写的原子性、可见性和有序性。 本文就具体来讲讲JMM是如何保证共享变量访问的可见性的。 什么是可见性问题 我们从一段简单的代码来看看到底什么是可见性问题。 上面的列子中,一个线程 ...
分类:
编程语言 时间:
2019-12-23 16:54:45
阅读次数:
89
Android Handler类 发送消息-post()和postDelay(), Looper讲解 ...
分类:
移动开发 时间:
2019-07-01 21:43:07
阅读次数:
225
知识点比较杂,需要注意逻辑联系 1、程序与进程的区别 程序是静态的,存放在磁盘上,是指令的集合。 进程是程序运行的实例,一个程序运行产生一次产生一个进程。 关于进程,每个进程都有自己的pid,都有自己的PCB,PCB(进程控制块)记录了进程使用到的资源。 进程是资源分配的基本的单位,但是不是执行的基 ...
分类:
系统相关 时间:
2019-06-10 00:01:25
阅读次数:
199