• ARTICLE
  • STRING
  • CONVERTER
  • ENCRYPT
  • NETWORK
  • MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
  • ARTICLE
    STRING
    CONVERTER
    ENCRYPT
    NETWORK
    MORE
    CHART
    MATH
    COORDINATE
    IMAGE
    FILE
logo Online Tools
All Chinese English Newest Hottest
4082 search results Contribute

最近面试问过很多候选人Java锁有关的知识,可以感受到的是,大家的理解基本都停留在“八股文”的阶段,实质上对Java的锁以及多线程的同步机制这种底层原理,理解的不是很好。网上这类文章已经很多了,但是看了下有好多文章都是相互抄的,而且都是过时的,典型的例如AQS里的addWaiter方法在JDK16里就没见到,或许代码进行了重构了。通过文章也梳理一下我一般看源代码的习惯是怎样的。 AQS全称是AbstractQueuedSynchronizer,首先他是一个抽象类,其次他使用了队列来进行排队,然后作用是用来做线程间的同步的。他是Java里所有锁的基础,包括CountDownLatch以及读写锁,可重入锁等等都是基于AQS实现的。我们从ReentrantLock入手来管中窥豹,大概得看看AQS的源代码。 首先你要了解的是使用方法,一个典型的ReentrantLock使用方法写在了这个类的注释里。

50 Technology lddgo Shared on 2023-07-28

ByConity适合多种业务场景,在实时数据接入、大宽表聚合查询、海量数据下复杂分析计算、多表关联查询场景下有非常好的性能。 本文将用一个实际的业务场景来介绍这套行为分析系统,ByConity是基于用户的多维度行为分析平台,提供事件分析、留存分析、转化分析、用户分群、用户留存等多种分析方式和场景。

36 Technology lddgo Shared on 2023-07-28

高仿真用户行为模拟可以使业务质量保障更加充分,优秀的程序设计也绝不会忽略功能在不同软硬件设备上的适配表现。所以,测试通常会引入兼容性测试、网络模拟测试、虚拟机测试等。这样不可避免的,会用到大量公共测试资源,如 机器设备(手机/主机等)、特征账号、虚拟资产......团队越庞大,资源越多,资源管理的难度就会越高,面临的异常问题也会越多。 伽利略曾提出一个“规模法则”,表达了如下观点:世间万事万物,都不能按照简单的线性关系放大。一个常见的例子就是,一颗树的长大,随着它越长越高,所关系到的体积和树干的承重力都是呈超线性关系增长的。团队里资源管理也是一样的,随着业务扩张,资源量增加,面临的问题和考验也是呈超线性关系增长的。 一些团队在规模较小的时候,使用手动管理的方式进行资源管理,但随着业务扩张,资源量达到一定程度的时候,手动进行资源管理就越发步履维艰。

41 Technology lddgo Shared on 2023-07-28

B站幻星数字人3D渲染技术揭秘

42 Technology lddgo Shared on 2023-07-28

预聚合是OLAP系统中常用的一种优化手段,在通过在加载数据时就进行部分聚合计算,生成聚合后的中间表或视图,从而在查询时直接使用这些预先计算好的聚合结果,提高查询性能,实现这种预聚合方法大多都使用物化视图来实现。 ClickHouse社区实现的Projection功能类似于物化视图,原始的概念来源于Vertica,在原始表数据加载时,根据聚合SQL定义的表达式,计算写入数据的聚合数据与原始数据同步写入存储。在数据查询的过程中,如果查询 SQL 通过匹配分析可以通过聚合数据计算得到,直接查询聚合数据减少计算开销,大幅提升查询性能。

164 Technology lddgo Shared on 2023-07-28

Android架构模式飞速演进,目前已经有MVC、MVP、MVVM、MVI。到底哪一个才是自己业务场景最需要的,不深入理解的话是无法进行选择的。这篇文章就针对这些架构模式逐一解读。重点会介绍Compose为什么要结合MVI进行使用。希望知其然,然后找到适合自己业务的架构模式

144 Technology lddgo Shared on 2023-07-27

本文对 HBase Compaction 的原理、流程以及限流的策略进行了详细的介绍,列举了几个线上进行调优的案例,最后对 Compaction 的相关参数进行了总结。

43 Technology lddgo Shared on 2023-07-27

在本文中,我们将介绍六个 TypeScript 的高级技巧,每个技巧都有例子展示其如何实现和使用。使用这些技巧,您不仅可以提高您的代码质量,也可以提高您作为一名 TypeScript 程序员的技能水平。

170 Technology lddgo Shared on 2023-07-27

BERT是由Google提出的预训练语言模型,它基于transformer架构,被广泛应用于自然语言处理领域,是当前自然语言处理领域最流行的预训练模型之一。而了解BERT需要先了解注意力机制与Transformers。

39 Technology lddgo Shared on 2023-07-27

在Android应用中, 用户时常会遇到界面卡顿的情况,非常影响用户的体验。作为Android开发肯定都知道:应用在主线程里做了大量的耗时操作(例如文件读写, 数据库读写,网络访问,图片编解码等),就会导致UI不能及时刷新,出现跳帧现象。如果应用主线程不能及时处理用户的输入事件或广播消息,系统甚至会直接弹出著名的ANR对话框,提示用户杀死应用。 在Flutter应用中,如果出现界面卡顿,它的原因也是如此吗? 我们带着这些疑问,一起来搞清楚Flutter的线程模型和异步原理,并找到问题的答案。

47 Technology lddgo Shared on 2023-07-27