ThreadLocal 核心源码分析

ThreadLocal 简介 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证和规避多线程访问出现线程不安全的方

给程序员的10堂写作课(一)--30+的你,怎能错过写作?

你是否在职场打拼多年,却始终原地踏步,为升职无望而焦虑?你是否在风云变幻的环境中,整日提心吊胆,不知道何时会被裁员?你是否正步入 35+的行列,面临年龄危机,心生恐惧?如果你正被这些问题所困扰,又苦无对策,那么不妨尝试写作吧。

[转帖]【JVM】线程安全与锁优化

线程安全 1.定义 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果 2.分类 (1)不可变 不可变的对象一定是线程安全的,只要一个不可变对象被正确地构建出来(没有发生thi

如何用windows任务视图管理多个程序,提高.net开发效率

在 Windows 操作系统中,任务栏是一个非常重要的工具栏,用来显示当前正在运行的程序和任务。如果同时运行了很多程序,任务栏上的图标就会变得非常拥挤,不方便管理和切换。为了提高工作效率,可以通过任务视图来将这些运行程序分组,以便更好地管理和切换。 任务视图是 Windows 操作系统中的一个功能,

我面试失败了,因为我不知道这个

我因为不知道这个而失败了一次面试。所以我写这篇文章,确保这种情况不会再发生在你身上。 锁定允许我们控制有多少线程可以访问代码中的某个部分。 为什么要这样做呢? 因为你想保护对昂贵资源的访问。而且你需要锁定提供的并发控制。由于我很少使用低级代码,所以我尝试使用lock语句来实现这一点。结果一切都变得一

驱动开发:通过应用堆实现多次通信

在前面的文章`《驱动开发:运用MDL映射实现多次通信》`LyShark教大家使用`MDL`的方式灵活的实现了内核态多次输出结构体的效果,但是此种方法并不推荐大家使用原因很简单首先内核空间比较宝贵,其次内核里面不能分配太大且每次传出的结构体最大不能超过`1024`个,而最终这些内存由于无法得到更好的释放从而导致坏堆的产生,这样的程序显然是无法在生产环境中使用的,如下`LyShark`将教大家通过在应

隐私集合求交(PSI)协议研究综述

摘要 隐私集合求交(PSI)是安全多方计算(MPC)中的一种密码学技术,它允许参与计算的双方,在不获取对方额外信息(除交集外的其它信息)的基础上,计算出双方数据的交集。隐私集合求交在数据共享,广告转化率,联系人发现等领域有着广泛的应用空间。本文对隐私集合求交的各项实现技术做了介绍和对比,对隐私集合求

yolov5 筛选正样本流程 代码多图详解

正样本全称是anchor正样本,正样本所指的对象是anchor box,即先验框。 先验框:YOLO v2吸收了Faster RCNN的优点,设置了一定数量的预选框,使得模型不需要直接预测物体尺度与坐标,只需要预测先验框到真实物体的偏移,降低了预测难度。

基于webapi的websocket聊天室(四)

上一篇实现了多聊天室。这一片要继续改进的是实现收发文件,以及图片显示。 效果 问题 websocket本身就是二进制传输。文件刚好也是二进制存储的。 文件本身的传输问题不太,但是需要传输文件元数据,比如文件名和扩展名之类的。这很必要,如果我们想知道怎么展示这个文件的话。比如这个文件是图片还是word

聊聊我认为的OpenFeign

此篇文章不从源码角度解析,网上一搜一大把。我个人的习惯是自己评估与思考下大概的设计思路是什么,然后看源码与博客佐证。否则一来就是使用然后看源码,一坨一坨的代码,真的看的头疼。以上仅是个人的学习方法。 聊聊OpenFeign,其实这个框架,之前用过,但没留意太多;说白了这个框架的出现就是为了让我们做R

服务器Raid配置的一些思考

背景 随着公司软件的发展.客户越来越多. 测试环境和兼容环境也越来越多. 不管是虚拟化,还是裸金属做数据库 存储都是绕不开的一道门槛. 最近又上架了几台服务器, 所以想趁着周末总结一下 最近服务器上架的一些得失, 以及未来客户现场部署的一些可能的事项. 关于存储 存储是一切软件的基础 没有存储软件几

[转帖]MESI协议:如何让多核CPU的高速缓存保持一致

你平时用的电脑,应该都是多核的 CPU。多核 CPU 有很多好处,其中最重要的一个就是,它使得我们在不能提升 CPU 的主频之后,找到了另一种提升 CPU 吞吐率的办法。 不知道上一讲的内容你还记得多少?上一节,我们讲到,多核 CPU 里的每一个 CPU 核,都有独立的属于自己的 L1 Cache

Java进程 OOM的多种情况

Java进程 OOM的多种情况 摘要 OOM 其实有多种: 第一类是JVM原生自发处理的, 这种也分为多种情况. 1. 堆区使用了比较多,并且大部分对象都还有引用, GC不出来可用内存, 这是要给对象申请较大的内存空间时就会出现OOM的报错. 2. 除了IP 下一条命令指针的内存的区域, 其他任何区

了不起的互联网老男孩,在创业路上不掉队

“青春如同奔流的江河,一去不回来不及道别”,老男孩这首歌戳中了太多职场中年男人的心酸苦楚,面对经济下行压力、互联网行业变革以及中年职场危机,互联网人应该如何应对?如何建立和现实叫板的能力? 有2位在互联网创业多年的开发者,经历了从PC互联网到移动互联网的发展变迁,踩过不少坑,一路磕磕碰碰走到现在,放

Mac Snipaste 不仅仅是截图工具,不在菜单栏显示,怎么样修改快捷键

官网下载: https://www.snipaste.com Snipaste 免费,支持 Windows、Mac,Windows 上的功能相当多而且,Mac 也够用了 不仅仅是个截图工具,具有强大功能: 截图 贴图(直接将截图贴在桌面上,当标签贴使用) 取色器 常用快捷健 fn + F1: 开始截

聊聊wireshark的进阶使用功能

emmm,说起网络知识学习肯定离不来wireshark工具,这个工具能够帮助我们快速地定位网络问题以及帮助正在学习网络协议这块的知识的同学验证理论与实际的一大利器,平时更多的只是停留在初步的使用阶段。也是利用部门内部的网络兴趣小组的讨论机会,私下对wireshark的一些进阶功能,比如专家模式、图表等功能进行调研,并结合实际场景抓包分析对功能进行对照说明。

看了还不懂b+tree的本质就来打我

看了还不懂b+tree的本质就来打我 数据检索系列视频 大家好,我是蓝胖子。 今天我们来看看b+tree这种数据结构,我们知道数据库的索引就是由b+tree实现,那么这种结构究竟为什么适合磁盘呢,它又有哪些缺点呢? 我将不会对b+tree的一些定义做过多的讲解,因为这些东西网上一大推,关键还是要抓住

(转载)提问的智慧[推荐阅读]

提问的智慧 在培训机构,可能最多的日常就是解答问题了,最头疼的就是遇到那些问问题,描述不清楚的情况,作为一个测试,描述清楚问题是最基本的,当初我们做测试的时候都受过培训,比如这个经典的提问的智慧。 原文链接: https://github.com/ryanhanwu/How-To-Ask-Quest

前端配置化表单组件设计方法

前端开发中涉及表单的页面非常多,看似功能简单,开发快速,实则占去了很大一部分时间。当某个表单包含元素过多时还会导致html代码过多,vue文件过大。从而不容易查找、修改和维护。为了提高开发效率及降低维护成本,下面介绍表单配置化组件的封装原理与封装方法。

关于自动限流的思考

目标 保证系统不因流量过载而挂。 现状:人工限流 正常的微服务限流工具都需要人工配置:支持应用负责人事先配置限流规则(接口 + 调用方 + 限流阈值),流量在阈值以下可以正常响应,超过阈值的流量会快速失败。这种方案存在如下问题: 问题 1. 接口多,无法全面覆盖 要想保证系统不因流量过载而挂,那就需