标签:java线程

Java

Java volatile关键字解析

4

xubiao.zhuang 发布于 2019-03-19

volatile 被称为 轻量级的synchronized ,运行时开销比 synchronized 更小,在多线程并发编程中发挥着 同步共享变量 、 禁止处理器重排序 的重要作用。建议在学习 volatie 之前,先看一下Java内存模型 《什么是Java内存模型?》 ,因为 ...

阅读(9)评论(0)赞 (0)

Java

Java volatile关键字解析

4

dulong 发布于 2019-03-19

volatile 被称为 轻量级的synchronized ,运行时开销比 synchronized 更小,在多线程并发编程中发挥着 同步共享变量 、 禁止处理器重排序 的重要作用。建议在学习 volatie 之前,先看一下Java内存模型 《什么是Java内存模型?》 ,因为 ...

阅读(8)评论(0)赞 (0)

Java

Java进程CPU占用率100%问题排查

hanze 发布于 2019-03-18

100%指的是占用了CPU一个核心,两个核心是200%,以此类推。 CPU占用率及对应进程ID(pid)可以通过top命令确定,在top界面按 c (显示完整的命令行参数),按 1 (显示每个核心的统计数据)。 这个问题最常见的有以下几种可能: 1、堆内存不足导致频繁Full G...

阅读(19)评论(0)赞 (0)

Java

Java线程池从使用到阅读源码(3/10)

3

puefu.he 发布于 2019-03-18

我们一般不会选择直接使用线程类 Thread 进行多线程编程,而是使用更方便的线程池来进行任务的调度和管理。线程池就像共享单车,我们只要在我们有需要的时候去获取就可以了。甚至可以说线程池更棒,我们只需要把任务提交给它,它就会在合适的时候运行了。但是如果直接使用 Thread 类,...

阅读(16)评论(0)赞 (0)

Java

java中CAS

dulong 发布于 2019-03-17

前言:在JDK1.5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。  (2)一个线程持有锁会导致其它所有需要此锁的线程挂起。 ...

阅读(17)评论(0)赞 (0)

Java

一文带你快速掌握AQS

13

likai 发布于 2019-03-15

AbstractQueuedSynchronizer 抽象队列同步器 ,简称为 AQS ,可用于构建 阻塞锁 或者其他相关 同步器 的基础框,是Java并发包的基础工具类。通过 AQS 这个框架可以对 同步状态原子性管理、线程的阻塞和解除阻塞、队列的管理 进行统一管理。 AQS ...

阅读(21)评论(0)赞 (0)

Java

CAS原理深度解析

2

xubiao.zhuang 发布于 2019-03-15

CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent 包中借助CAS实现了区别于 synchronouse 同步锁的一种乐观锁。 本文先从CAS的应用说起,再深入原理解析。 2. CAS应用 CAS有3个操作数,内存值V,旧的预...

阅读(14)评论(0)赞 (0)

Java

JAVA中锁的深入理解与解析

6

xirruiqiang 发布于 2019-03-14

如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁。 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期...

阅读(26)评论(0)赞 (0)

Java

JVM中的线程行为

1

刘莉莉 发布于 2019-03-13

JVM做了它想做的事情,那么如何预测线程执行的顺序呢? 线程化是指同时执行程序过程以提高应用程序性能的实践。虽然直接在业务应用程序中使用线程并不常见,但它们一直在Java框架中使用。例如,处理大量信息的框架(如 Spring Batch )使用线程来管理数据。同时操作线程或CPU...

阅读(27)评论(0)赞 (0)

Java

值得阅读的内存泄露分析总结和tomcat调优

26

songhua.gao 发布于 2019-02-28

写在最前面,运行环境:tomcat8,jdk1.8,windows server 2008内存16G,软件LoadRunner11,MAT和JProfile9.1。 问题描述:前段时间遇到一个很奇怪的问题,开发的WEB应用,经常会毫无症状的宕掉,然后抓了线程栈看下,发现之前写的数...

阅读(58)评论(0)赞 (0)

Java

深入进阶:图解分析JVM内存堆布局

7

hanze 发布于 2019-02-26

JAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C++语言执行的速度要慢了,当然原因肯定不止这一个,如在JVM中没有数据寄存器,指令集使用的是栈来保存中...

阅读(50)评论(0)赞 (0)

Java

多线程安全性和Java中的锁

2

xirruiqiang 发布于 2019-02-26

Java是天生的并发语言。多线程在带来更高效率的同时,又带来了数据安全性问题。一般我们将多线程的数据安全性问题分为三种:原子性、可见性和有序性。原子性是指我们的一系列操作要么全部都做,要么全部不做。可见性是指当一个线程修改了一个共享变量后,这个修改能够及时地被另一个线程看到。有序...

阅读(67)评论(0)赞 (0)

Java

java线程实现方式

3

puefu.he 发布于 2019-02-26

各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。 每个已经执行start()且还未结束的java.lang.Thread类的实例就代表了一个线程。Thread的所有关键方法都是声明为Native的。在Java API中,一个Na...

阅读(44)评论(0)赞 (0)

Java

Reactor线程模型及其在Netty中的应用

6

hellas 发布于 2019-02-25

Java中线程模型大致可以分为: 单线程模型 多线程模型 线程池模型(executor) Reactor线程模型 单线程模型中,server端使用一个线程来处理所有的请求,所有的请求必须串行化处理,效率低下。 多线程模型中,server端会为每个请求分配一个线程去处理请求,相对单...

阅读(37)评论(0)赞 (0)

Java

并发与多线程基础

4

Harries 发布于 2019-02-19

熟悉Java的人都能很容易地写出如下代码: public static class MyThread extends Thread { @Override public void run() { System.out.println("MyThread is runni...

阅读(61)评论(0)赞 (0)

Java

MAT 入门到精通(二)

18

xiaoli.wang 发布于 2019-02-15

阅读本文大概需要6分钟。 上一篇文章 MAT入门到精通(一) 介绍了MAT的使用场景和基本概念,这篇文章开始介绍MAT的基本功能,后面还有两篇,一篇是MAT的高级功能,另一篇是MAT实战案例分析。 MAT的欢迎页 03 使用MAT打开一个heap dump文件,解析完成后,默认会...

阅读(50)评论(0)赞 (0)

Java

2019 春招即将开始,你所关心的都在这里

3

xiaoli.wang 发布于 2019-02-14

2019年春季校招马上就要开始了,这里总结了一些在校学生可能会关心的问题。希望对大家有帮助! 1 什么是应届毕业生? 我们拿正常的秋季招聘举例:2018年的秋季招聘,招聘对象是2019届毕业生(毕业时间:2019.01.01-2019.12.31)。 也就是说,2018年的秋招,...

阅读(102)评论(0)赞 (0)

Java

Java线程池ThreadPoolExecutor实现原理

3

小丁 发布于 2019-02-08

线程属于稀缺资源,对于线程的创建规则,引用《阿里巴巴 Java 手册》中的一条进行说明。 本篇从源码方面介绍ThreadPoolExecutor对象,并简要解析线程池工作原理。 首先ThreadPoolExecutor中定义了几个 线程池状态常量 。 // runState is...

阅读(69)评论(0)赞 (0)