java并发编程
hq091117
这个作者很懒,什么都没留下…
展开
-
并发包学习之AQS详解
转载处:https://www.cnblogs.com/chengxiao/archive/2017/07/24/7141160.html同步器可以说是并发包的基础把,了解下原理,源码,有助于我们以后自己写同步器,下面文章也说过同步器是模版模式的,我们可以重写来实现自己的同步器,对着源码来学习这个文章还是挺好的。Java并发包(JUC)中提供了很多并发工具,这其中,很多我们耳熟能详的...转载 2020-05-08 16:26:59 · 275 阅读 · 0 评论 -
并发包学习之LockSupport,Condition,Object的notify
最近看了LockSupport,和condition,发现其作用好像都是用于线程阻塞唤醒,所以想整理下他们的区别先说LockSupport特点1,LockSupport定义了一组的公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能,而LockSupport也成为构建同步组件的基础工具。2,LockSupport主要是有一组以park开头的方法用来阻塞当前线程,以及unpark(Th...转载 2020-05-08 14:38:36 · 330 阅读 · 0 评论 -
多线程之ThreadLocal学习
一直没看过ThreadLocal的源码,没用过平时,所以没了解,弱爆了。开始学习ThreadLocal<String> local = new ThreadLocal<>();local.set("");//学习set方法了解 public void set(T value) { Thread t = Thread.currentThrea...原创 2020-04-27 21:49:08 · 137 阅读 · 0 评论 -
并发包学习:线程池之Executor,Executors,ExecutorService
线程池转载 2020-04-27 22:45:46 · 202 阅读 · 0 评论 -
并发编程的艺术 -线程基础
并发编程艺术二:java 并发编程基础程序的正确性不能依赖线程的优先级高低,因为操作环境可能会忽略线程的优先级。start()含义:当前线程同步告知java虚拟机,只要线程规划器空闲,应立即启动调用start方法的线程。(自定义线程最好起个名字)中断:中断可以理解为线程的一个标示位属性,他表示一个运行中的线程是否呗其他线程进行了中断操作,线程通过检查自身是否呗中断来进行响应,线...原创 2019-09-24 19:19:19 · 129 阅读 · 0 评论 -
并发编程的艺术学习笔记 -基础
一:基本基础1,上下文切换cpu不停的切换线程执行。那么就有一个问题,让出cpu的线程等下次轮到自己占有cpu的时,如何知道自己之前运行到了哪里,所以在切换上下文时需要保存当前线程的执行现场,当再次执行时根据保存的执行现场信息恢复执行现场。线程上下文切换的时机:当前线程的cpu时间片使用完处于就绪状态时,当前线程被其他线程中断时。减少上下文切换:有无锁并发编程,cas算法,使用...原创 2019-09-24 11:16:53 · 146 阅读 · 0 评论 -
java并发()守护线程与非守护
关于守护线程,我们都知道gc是肯定守护的,但是网上都说main方法也是守护,不知道对不对,我自己写的main方法测试却是非守护的,下面关于守护做一些测试package com.study.webapp.lock;/** * 守护线程与非守护 * * @author admin gc守护,用户线程非守护 2018年12月28日 */public class DaemonTest...原创 2018-12-28 10:56:17 · 130 阅读 · 0 评论 -
java并发(5)ReentrantReadWriteLock读写锁
学习:https://blog.csdn.net/u012506661/article/details/53157004 1,synchronized的锁是不分读写的,假设一个对象有读方法还有写方法,我们希望读方法和写方法能不同线程访问,所以读写锁解决了这个问题,当写操作时,其他线程无法读取或者写数据,而读操作时,其他线程虽然无法写数据,但是可以读数据,也就是说,读可以多...转载 2018-12-20 15:19:49 · 116 阅读 · 0 评论 -
java并发(4):可重入锁ReentrantLock
概念理解:1,重入:可以反复多次进入,但是只能再同一个线程(最近一次拥有的锁)内,API介绍:ReentrantLock将由最近成功获得锁,并且还没有释放该锁的线程所拥有,当锁没有被另一个线程所拥有,调用lock的线程将成功获取该锁。2,重入锁可中断:ReentrantLock提供了另外一种可能,就是线程可以中断,就是线程在等待锁的过程中可以中断,而Synchronized不能中断,只能要...原创 2018-12-19 15:51:06 · 253 阅读 · 0 评论 -
java并发(3):volatile理解
volatile保证了可见性,一定程度保证了有序性,但不保证原子性。可见性:当多个线程访问一个变量时,只要有一个线程改变了这个变量,其他线程也能马上看到这个变量最新的值。原子性:不解释了,有序性:程序执行代码的顺序。 指令重排序:在java内存模型中,为了效率是允许编译器和处理器对指定进行重排序,这就会影响多线程下的程序执行。 volatile保证有序性是禁止指...原创 2018-12-12 15:52:41 · 124 阅读 · 0 评论 -
java并发(2):synchronized 的理解
synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入临界区,同时他还可以保证共享变量的内存可见性。synchronized同步关键字,主要用法有同步方法,同步代码块,主要理解几句话:1)当一个线程正在访问一个对象的synchronized方法,那么其他线程不能访问该对象的其他synchronized方法,因为一个对象只有一个锁,当一个线程获取了该对象的锁...原创 2018-01-15 15:32:16 · 171 阅读 · 0 评论 -
java并发(1):进程线程
1,什么是进程什么是线程进程:我的理解是进程就是一个程序,windons打开任务管理器就可以看到,java.exe或者javaw.exe就是java程序在windons里的一个进程。线程:个人理解,程序里的多个并行的任务线,比如java里除了main主线程,还有你可以起几个task定时的线程用于处理其他事项。2,线程java方式:extends Thread类和implements...原创 2018-12-05 14:07:03 · 136 阅读 · 0 评论 -
java并发编程博客收集
海子的并发系列:https://www.cnblogs.com/dolphin0520/category/602384.html死磕java并发系列:http://cmsblogs.com/?cat=151&paged=2深入理解并发:https://segmentfault.com/blog/ressmix_multithread?page=3个人觉得这两个系列写的很好,...转载 2018-12-05 10:26:59 · 294 阅读 · 0 评论