一,介绍 本文介绍JAVA多线程中的synchronized关键字作为对象锁的一些知识点。 所谓对象锁,就是就是synchronized 给某个对象 加锁。关于 对象锁 可参考:这篇文章 二,分析 sync…
分类:java并发
单链表java单链表的实现, 多线程 ,读写锁
1, 读写锁 (1)读锁与读锁不互斥, 即一个拥有lock锁的读锁的线程在读a变量时, 另一个同样拥有lock锁的读锁的线程可以同时读a变量 (2)读锁与写锁互斥, 即一个拥有lock锁的读锁的线程在读a变量时,另一个同…
Java 基础系列合集
Java特性 Java三大特性:封装,继承,多态 Java 抽象类与接口 Java 浅拷贝和深拷贝 Java static和final Java 内部类、静态内部类、匿名内部类 Java 强制类型转换 ja…
JUC线程高级-volatile关键字与内存可见性
1、什么是内存可见性问题? 内存可见性问题是,当多个线程操作共享数据时,彼此不可见。即:线程1更改了共享数据的值,线程2读取…
关于java线程与线程池(看到文章的汇总)
可以使用线程池对其进行管理,同时线程池还具有提高系统性能的优点,因为创建线程和清除线程的开销比较大。 有两种不同类型的线程池:一是固定线程数量的线程池;二是可变数量的线程池。 对于固定数量的线程池,可以使用E…
java 多线程(一)
不知道大家学习或者使用线程时有没有思考过什么是线程? 大多数书上或者文章上都是这么解释的:线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调…
java多线程中死锁情况的一个示例
1 package com.qust.demo.money; 2 3 class A { 4 5 public synchronized void foo(B b) { 6 System.out.println(Thre…
java多线程中的死锁情况读书笔记
多线程中的死锁 在前面的分析中,我们知道一个对象可以用Synchronized方法或者其他的加锁形式来防止别的任务在互斥还没有释放的时候就访问这个对象。 试想一下这样的情况:某个任务在等待另一个任务,而后者又在等待别的任…
详解JUC之原子类使用及实现
前言 我在详解JUC之原子类概述这篇文章中介绍了一下原子操作和JUC包下的原子类的类型,现在我就来介绍一下这些原子类。 操作基本类型的原子类 操作基本类型的原子类有3个 AtomicInteger:操作int类型 Ato…
java.util.concurrent(JUC)的研究--》atomic原子操作--》从AtomicInteger开始
通常情况下,在Java里面,++i或者–i不是线程安全的,这里面有三个独立的操作:读变量当前值,为该值+1/-1,然后写回新的值。在没有额外资源可以利用的情况下,只能使用加锁才能保证读-改-写这三个操作时“原…
深入理解Java之线程池(爱奇艺面试),Java结束线程的三种方法(爱奇艺面试)
爱奇艺的面试官问 (1) 线程池是如何关闭的 (2) 如何确定线程池的数量 一、线程池销毁,停止线程池 ThreadPoolExecutor提供了两个方法,用于线程池的关闭,分别是shutdown…
JAVA经典题--死锁案例
死锁原理: 两个线程相互等待对方释放同步监视器 例子程序: 1 public class TestDeadLock implements Runnable { 2 3 public int flag = 1; 4 sta…