最新文章列表

Java内存模型JMM之六深入理解synchronized(1)

一、互斥同步 在前面我们了解了什么是线程安全与synchronized的基本应用,那么如何才能实现线程安全?互斥同步是最常见的一种并发线程安全保障手 ...
春花秋月何时了 评论(0) 有1116人浏览 2018-01-05 19:17

传统线程同步

/** * 主线程和子线程轮流执行 */ public class TraditionalThreadTest { public static void main(String[] args) { new TraditionalThreadTest().init(); } public void init() { ...
firkeuuuu 评论(0) 有456人浏览 2018-01-05 15:45

2017年问题汇总-待整理

查询时应注意的事项 1.从库查询,减轻主库压力 2.缓存,不是实时要求的数据,放入缓存 Excel导入异常Cannot get a text value from a numeric cell解决 http://blog.cs ...
mingyun 评论(0) 有2235人浏览 2017-12-31 12:27

fork join例子说明

public static class SelectMaxProblem { private final int[] numbers; private final int start; private final int end; public final int size; // constructo ...
javaG 评论(0) 有980人浏览 2017-11-30 21:45

JAVA 模拟瞬间高并发

转载: http://blog.csdn.net/zhao9tian/article/details/40346899 前些日子接到了一个面试电话,面试内容我印象很深,如何模拟一个并发?当时我的回答虽然也可以算是正确的,但自己感觉缺乏实际可以操作的细节,只有一个大概的描述。       当时我的回答是:“线程全部在同一节点wait,然后在某个节点notifyAll。”       ...
生活_对我扯淡 评论(0) 有553人浏览 2017-10-20 15:57

构建更健壮的系统:如何干掉死循环的线程

  为什么要干掉一个线程,这个和更健壮的系统有什么关系。 有时候我会想到一个问题,开发的系统基本上就是自己/测试团队测试了几遍然后上线。 上线后出现了不可预知的bug怎么办呢,例如出现了死循环或者部分逻辑有问题导致用户点击后会找出非常长的时间等待而且没办法进行其他操作。   java里面很多业务都用到了多线程,业务都放在线程池里面写 Thread.interrupt() 是无法终止一个 ...
aa87963014 评论(0) 有2060人浏览 2017-09-28 20:53

理解 Thread.Sleep 函数

我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒? 某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。 ...
elvis4139 评论(0) 有660人浏览 2017-09-22 08:59

java多线程学习之从正常到自残

写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java并发编程与技术内幕。你将会对Java里头的高并发场景下的线程有更加深刻的理解。本文主要讲了java中多线程的使用方法、线程同 ...
lovelichao 评论(0) 有337人浏览 2017-09-21 17:21

容器集合

容器 一、同步类容器 1.概念 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。 复合类操作如: 迭代(反复访问元素,遍历完容器中所有的元素)、 跳转(根据指定的受损徐找到当前元素的下一个元素)、以及条件运算。 这些复合操作在多线程并发地修改容器时,可能会表现出意外的行为 最经典的便是 ConcurrentModificationException 原因是当容器迭代的过程中, ...
mingyun 评论(0) 有406人浏览 2017-08-19 18:18

ThreadLocal

ThreadLocal 一、概念 ThreadLocal : 线程局部变量,是一种多线程间并发访问变量的解决方案。与其 synchronized 等加锁的方式不同, ThreadLocal 完全不提供锁,而使用以空间换时间的手段,为每个线程提供变量的独立副本, 以保障线程安全。 从性能上说, ThreadLocal 不具有绝对的优势,在并发不是很高的时候,加锁的性能会更好, 但作为一套与锁完全 ...
mingyun 评论(0) 有299人浏览 2017-08-17 21:02

多线程-单例模式

单例模式 一、概念 饿汉模式、懒汉模式 二、示例 package com.study.current.thread.day02; /** * 单例,多线程 */ public class InnerSingleton { private static class Singletion{ private static Singletion single = ...
mingyun 评论(0) 有357人浏览 2017-08-17 20:59

线程间通信 wait notify

线程间通信 一、通信 线程通信概念:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一。当线程存在通信指挥,系统间的交互性会更大,在提高CPU利用率的同事还会使开发人员对线程任务在处理的过程中进行有效的把控与监督。 二、 1.通过 while(true )监听线程 package com.study.current.thre ...
mingyun 评论(0) 有434人浏览 2017-08-15 22:12

Volatile

Volatile 一、概念 volatile : 作用是保证变量在线程间的可见性 二、 在Java中,每一个线程都会有一块工作内存去,其中存放着所有线程共享的主内存中的变量值得拷贝。当线程执行时,他在自己的工作内存区中操作这些变量。为了存取一个共享的变量,一个线程通常先获取锁定并去清除他的内存工作区,把这些共享变量从所有线程的共享内存区中正确的装入到自己所在的工作内存区中,当线程解锁时保证该工 ...
mingyun 评论(0) 有401人浏览 2017-08-14 22:11

Synchronized

Synchronized 一、锁重入 1.概念 关键字 synchronized 拥有锁重入功能,也就是在使用 synchronized 时,当一个线程得到了一个对象的锁后,再次请求此对象时可以再次得到该对象的锁。 2.示例 三个方法,依次调用,获取 第一个方法的锁,执行第二个方法时同样可以获取锁 package com.study.current.thread.day01; / ...
mingyun 评论(0) 有413人浏览 2017-08-13 18:46

脏读(数据)

脏读 一、概念 数据写入与数据读出不一致 原因:未对写入与读出做整体性的处理,导致与预期结果不一致 二、例子 假设: 写入两个数据,第一个数据写入需4s,然后写入第二个数据 线程启动后,1s,需读取数据。 若:只对写进行 synchronized 处理,未对 读进行同样处理,就会出现脏读 package com.study.current.thread.day01; /** ...
mingyun 评论(0) 有441人浏览 2017-08-13 17:47

Android面试题目之(七) AsyncTask的原理是什么?

1. AsyncTask是什么? AsyncTask使得可以恰当和简单地使用 UI线程。这个class允许你在后台做一些事情,然后把进度和结果告诉UI线程,而不需要操作handler和 ...
daojin 评论(0) 有1026人浏览 2017-08-13 15:09

线程安全

线程安全 一、线程安全 线程安全概念: 当多个线程访问某一个类(对象或方法)时,这个类(对象或方法)都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。 二、同一个对象的锁 1.对同一个对象的对象锁 synchronized synchronized 锁是对象级别的 package com.study.current.thread.day01; /** * 线程安 ...
mingyun 评论(0) 有392人浏览 2017-08-12 20:55

线程内存溢出!!!!

引用 创建线程,内存溢出异常 import com.google.common.collect.Lists; import java.util.List; /** * @Author admin Date: 2017/6/19 10:40 * @description: 创建线程导致内存溢出异常 */ public class JavaVMStackOOM { ...
subject 评论(0) 有708人浏览 2017-06-19 14:50

通过Fluentd实时上传数据到DataHub实践

本文把我通过Fluentd,把数据上传到DataHub的配置过程记录下来,希望对大家在配置中能有帮助。 安装 前序准备 本文使用一台CentOS 6.8的ECS来做测试的,机器上已经有yum。用户测试的时候,需要有一台能连接上公网的Linux机器。 1. 安装依赖包 yum -y install gcc gcc-c++ openssl* readline* ncurses* zlib* libx ...
liangyan9966 评论(0) 有531人浏览 2017-06-06 14:23

最近博客热门TAG

应用服务器(43288) Spring(40812) Hibernate(33330) Tomcat(28345) 框架(27200) 设计模式(24056) Servlet(23313) Struts(22805) Bean(22194) 企业应用(18268) thread(15826) 多线程(14801) SUN(11436) 虚拟机(11382) Cache(11314) Security(8002) SSH(7109) DAO(6880) MVC(6206) AOP(6187)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics