JAVA 九月 11, 2022

【转】Java 线程状态之 TIMED_WAITING

文章字数 9.6k 阅读约需 9 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-timed_waiting

目录

  • 定义
  • timed_waiting 的场景
  • 虚假唤醒(spurious wakeup)
  • sleep...
查看全文

JAVA 九月 11, 2022

【转】Java 线程状态之 TIMED_WAITING

文章字数 9.6k 阅读约需 9 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-timed_waiting

目录

  • 定义
  • timed_waiting 的场景
  • 虚假唤醒(spurious wakeup)
  • sleep 时的线程状态
  • BLOCKED 和 WAITING 状态的区别和联系
  • 总结

上一篇章中我们谈论了 WAITING 状态,在这一篇章里,我们来看剩余的最后的一个状态:TIMED_WAITING(限时等待)。

一个正在限时等待另一个线程执行一个动作的线程处于这一状态。

A thread ...

查看全文

JAVA 九月 04, 2022

【转】Java 线程状态之 WAITING

文章字数 11k 阅读约需 10 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-wating

上一篇里我们讲了一个重要状态:BLOCKED,在这一篇章里,我们来看另一个重要的状态:WAITING(等待)。

一个正在无限期等待另一个线程执行一个特别的动作的线程处于这一状态。

A thread that is waiting indefinitely for another thread to perform a particular action is in this state.

然而这里并...

查看全文

JAVA 八月 28, 2022

【转】Java 线程状态之 BLOCKED

文章字数 6.9k 阅读约需 6 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-blocked

目录

  • BLOCKED 状态的定义
  • 进入(enter)同步块时阻塞
  • wait 之后重进入(reenter)同步块时阻塞
  • 总结

上一篇中,我们强调了 BLOCKED 状态跟 I/O 的阻塞是不同的,它不是一般意义上的阻塞,而是特指被 synchronized 块阻塞,即是跟线程同步有关的一个状态。

前面已经说过 BLOCKED(阻塞) 的简单定义为:

一个正在阻塞等待一个监视器锁的线程处于这一状态。(...

查看全文

JAVA 八月 21, 2022

【转】Java 线程状态之 RUNNABLE

文章字数 9k 阅读约需 8 mins.

原文地址:https://xiaogd.net/md/java-线程状态之-runnable

目录

  • 什么是 RUNNABLE?
  • 与传统的 ready 状态的区别
  • 与传统的 running 状态的区别
  • 当 I/O 阻塞时
  • 如何看待 RUNNABLE 状态?

上一篇我们粗略谈到了 Java 的 6 种线程状态,并对其中较为简单的 NEW 和 TERMINATED 做了分析,现在我们具体来看下 State.RUNNABLE 状态,即所谓的可运行状态。(以下简称 runnable)

再次强调,这...

查看全文

JAVA 七月 24, 2022

Java 线程状态介绍

文章字数 11k 阅读约需 10 mins.

JVM 中的线程,有六种状态,定义在 java.lang.Thread.State 枚举类中,从 1.5 版本开始,至目前最新的 1718,基本没有变化。

先来看一下 Java Doc 中对这六种状态的描述:

注意下面那句话:

A thread can be in only one state at a given point in time. These states are virtual machine states which do not reflect any operating...

查看全文

TEST 七月 17, 2022

ApacheBench 简介

文章字数 8.3k 阅读约需 8 mins.

ApacheBench 简称 ab,是 Apache HTTP Server 中的一个性能测试工具,可单独安装,在命令行中直接使用,可基于 HTTP 接口对任意 HTTP 服务器进行性能测试,得到每秒请求数(RPS)、平均请求响应时间等性能指标。

Ubuntu/Debian

$ sudo apt-get update 
$ sudo apt-get install -y apache2-utils

CentOS/Readhat/Fedora

$ yum install httpd-tools

MacOS...

查看全文

SPRING 七月 10, 2022

【转】Spring 之 Interceptor

文章字数 5.3k 阅读约需 5 mins.

原文地址:https://wyiyi.github.io/amber/2022/07/01/interceptor/

什么是拦截器

在 Spring Web MVC 中,拦截器(Interceptor)同 Servlet 中的过滤器(Filter) 类似,都可以实现对用户的请求做出相应的处理。

所有 HandlerMapping 的实现都支持处理程序拦截器,当想将特定功能应用于某些请求时很有用 —— 例如检查权限。
拦截器必须实现 org.springframework.web.servlet 包中...

查看全文

KAFKA 六月 19, 2022

Kafka 性能测试

文章字数 12k 阅读约需 11 mins.

Apache Kafka 安装目录的 bin 路径下,包括启停服务在内的很多脚本。这些脚本能够帮助我们完成对 Kafka 的各类操作,其中就有对生产者和消费者进行性能测试的工具。

脚本分为两个版本:Linux 下执行的 Shell 脚本,以及 Windows 下执行的 bat 脚本。

以 Shell 脚本为例,可以查看脚本内容,除了停止 ZooKeeper 和 Kafka 服务的脚本外,其余脚本均会在最后调用 kafka-run-class.sh 并根据使用脚本的不同,传入不同的类进行处理。...

查看全文

KAFKA 六月 12, 2022

【译】深入了解 Apache Kafka 存储内部

文章字数 15k 阅读约需 13 mins.

英文原文:Deep dive into Apache Kafka storage internals: segments, rolling and retention

作者:Paolo Patierno

Apache Kafka 采用类似提交日志的方式处理消息的存储。消息一个接一个的追加在每个日志的末尾,每个日志也会被分成段。分段有助于删除较旧的消息记录及提高性能等。所以,日志是一个由段(文件)组成的消息记录的逻辑序列,每个段内存储的是一部分消息。消息代理(Broker)的配置允许您调整与日志相...

查看全文

JAVA 五月 15, 2022

使用 Alibaba Druid 进行 SQL 翻译

文章字数 12k 阅读约需 11 mins.

Alibaba Druid 是阿里云计算平台 DataWorks 团队出品,为监控而生的数据库连接池。

Apache 旗下也有一个 Apache Druid,是一个高性能的实时分析数据库。

本文提到的 Druid,指 Alibaba Druid

Druid 其实是一个 JDBC 组件库,不仅包含数据库连接池组件,还有 SQL Parser 等组件,被大量业务和技术产品使用或集成,从 GitHub 的 Start 数量(25.5k),和 Used by 数量(206k)可见一斑。

网上关于 ...

查看全文
加载更多
0%