
多线程
liyu121
这个作者很懒,什么都没留下…
展开
-
线程安全,为什么说ArrayList,LinkedList是线程不安全的,以及CopyOnWriteArrayList和vector为什么安全
概要介绍 首先说一下什么是线程不安全:线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 如图,List接口下面有两个实现,一个是ArrayList,另外一个是vector。 从源码的角...原创 2019-02-22 11:06:33 · 29271 阅读 · 2 评论 -
手撕面试题ThreadLocal!!!
http://ifeve.com/%E6%89%8B%E6%92%95%E9%9D%A2%E8%AF%95%E9%A2%98threadlocal%EF%BC%81%EF%BC%81%EF%BC%81/#more-44277转载 2019-09-08 21:45:55 · 223 阅读 · 0 评论 -
线程上下文切换
参考http://www.cnblogs.com/dolphin0520/p/3920357.html,《深入理解java虚拟机》 对于单核CPU来说(对于多核CPU,此处就理解为一个核),CPU在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个叫做线程上下文切换(对于进程也是类似)。 由于可能当前线程的任务并没有执行完毕,所以在切换时需要保存...转载 2019-07-26 17:36:07 · 266 阅读 · 0 评论 -
实现导入导出100万数据量
https://www.cnblogs.com/barrywxx/p/10700221.html转载 2019-07-09 18:08:02 · 1634 阅读 · 0 评论 -
lock和synchronized的区别以及优点缺点(脑图)
synchronizedLock参考博文:https://www.cnblogs.com/dolphin0520/p/3923167.html原创 2019-06-19 21:14:41 · 857 阅读 · 0 评论 -
面试必备之乐观锁与悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它...转载 2019-03-26 10:53:11 · 104 阅读 · 0 评论 -
并发容器CopyOnWriteArrayLis,ConcurrentHashMap,HashTable,HashMap
集合容器 特点 缺点 HashMap 线程不安全 HashTable 线程安全,全段加锁,效率低 ConcurrentHashMap 1.线程安全 2.分段加锁 3.读数据不加锁 CopyOnWriteArrayList 1.线程安全 2.写数据时copy一个新容器,写完后,原容器的引用指向新的容器...原创 2019-03-04 15:40:13 · 241 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
此文转载至http://www.cnblogs.com/dolphin0520/p/3920373.htmlJava并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatil...转载 2019-03-01 16:15:02 · 174 阅读 · 0 评论 -
Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题?
网上有很多关于 Java 内存模型的文章,但是很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文就来整体的介绍一下 Java 内存模型,读完本文以后,你就知道到底 Java 内存模型是什么,为什么要有 Java 内存模型,Java 内存模型解决了什么问题等。本文中很多说法都是笔者自己理解后定义出来的。希望能够让读者可以对 Java 内存模型有更加清晰的认识。为什么要有内存模型...转载 2019-03-01 15:40:38 · 523 阅读 · 0 评论 -
多线程同步之synchronized
作用:当两个或多个线程需要共享,update操作时,需要通过某种方法来确定该资源在任意时刻仅被一个线程占用,实现上述目的的过程就叫同步同步分为同步方法和同步语句注意:synchronized声明不会被集成,如果一个用synchronized修饰的方法被子类覆盖,那么子类中这个方法不再具有同步功能,除非再用synchronized修饰,简单的其实也可以用static修饰就行了下面这情况两...原创 2019-02-13 11:13:46 · 319 阅读 · 0 评论 -
多线程的调度之优先级,Join(),sleep(),yield()
看下面的代码例子,请问程序的输出结果是5吗?,按照我们常规的想法,结果应该是5,而实际答案是有可能是5,也有可能是0,并且很难遇到是5的情况(这与机器的性能有很大关系),为什么大部分情况是0?那是因为当我们执行语句时,这是同时有main线程和th线程,他们的优先级是相同的,当main线程先抢到CPU控制权时,sum的值还没变还是0,如果t先抢到CPU控制权,sum的值就是5package t...原创 2019-02-13 09:53:53 · 415 阅读 · 0 评论 -
多线程同步之Lock,ReentantLock
Lock和synchronized的区别和使用Java并发编程:Lock转载自:https://www.cnblogs.com/baizhanshi/p/6419268.html今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很...转载 2019-02-18 13:51:24 · 375 阅读 · 0 评论 -
多线程通信
本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等下面我从几个例子作为切入点来讲解下 Java 里有哪些方法来实现线程间通信。一:如何让两个线程依次执行 场景:A和B线程各自打印1,2,3数字,让B打印完之后...原创 2019-02-18 14:13:05 · 122 阅读 · 0 评论 -
线程创建方式:Thread,Runnable,ExeccutorService,Callable,Future
1.Threadimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class ThreadOutput extends Thread { public ThreadOutput(String name) { // TODO Auto-...原创 2019-02-18 10:27:42 · 163 阅读 · 0 评论 -
jvm调优,调试,gc等等实战
http://www.pianshen.com/article/2926163627/原创 2019-09-29 10:11:50 · 173 阅读 · 0 评论