多线程
『梧桐雨』
这个作者很懒,什么都没留下…
展开
-
多线程之AQS学习
多线程并发访问共享资源时,为了保证数据的安全性,我们采用加锁的手段保证多线程访问共享资源的安全(这里不讨论无锁手段)。锁可以大致分为两种----Synchronized锁和基于Lock,AQS的实现锁。AQS是一个抽象队列同步器(Abstract Queued Synchronizer),用来控制多线程对共享资源的同步操作。常见的锁如:ReentrantLock, ReentrantReadWri...原创 2020-05-12 17:23:21 · 241 阅读 · 0 评论 -
利用CAS机制写一个简单的tryLock锁
小试牛刀学习了Atomic类的CAS机制后,小试牛刀来写一个简单的tryLock锁,巩固下学习内容。代码如下:package com.example.multithread.atomicmethod;import java.util.concurrent.atomic.AtomicInteger;import java.util.stream.IntStream;public cla...原创 2020-05-05 13:46:49 · 228 阅读 · 0 评论 -
原子类学习
看一个volatile的例子,代码如下,三个线程对同一个变量做累加。package com.example.multithread.atomicmethod;import java.util.concurrent.atomic.AtomicInteger;import java.util.stream.IntStream;public class AtomicTest { p...原创 2020-05-04 22:19:57 · 153 阅读 · 0 评论 -
多线程之volatile
代码一:如下代码开启2个线程,一个只读,一个只写。可以看到写线程虽然改变了共享变量,但是只读线程似乎根本不care变化,输出的变量一直是0。package com.example.multithread.volatiletest;import java.util.stream.IntStream;public class VolatileReadOnly {// priva...原创 2020-05-03 16:36:26 · 176 阅读 · 0 评论 -
创建线程安全的单例对象
方法一:饿汉式:package com.example.multithread.singleton;import java.util.stream.IntStream;/** * 饿汉式:1.优点:类加载时就自动创建对象,禁止用户创建对象,天然线程安全, * 2.缺点:类加载时jvm会创建静态对象实例,不管后续是否使用到该实例,造成内存浪费。 */public cl...原创 2020-05-01 17:30:08 · 313 阅读 · 0 评论 -
多线程并发编程学习 ---AQS学习
本文转载自:http://www.cnblogs.com/waterystone/一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/...转载 2019-04-15 15:08:22 · 110 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
本文转载自:http://www.cnblogs.com/dolphin0520/p/3920397.html在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲: 一、CountDownLatch用法 二、CyclicBarr...转载 2019-04-16 18:34:49 · 69 阅读 · 0 评论