自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

其实我也没有太多期盼,毕竟一生太短,少有圆满

记住今天,以后做更好的自己 17 April 2017

  • 博客(10)
  • 收藏
  • 关注

原创 JavaConcurrency-CountDownLatch,CyclicBarrier,Semaphorea

总结:CountDownLatch和CyclicBarrier能够实现线程之间的等待。CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行。不可重用。CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程在同时执行。可重用。Semaphore和锁类似,一般用于对资源的访问权限控制。CountDownLatch 用法:利用它可以实...

2019-04-15 09:50:37 157

原创 Maven-深入理解

Maven仓库的理解,以及他们关系:Jar包,不可能每次都要去联网下载吧,1 本地仓储就是相当于加了一层Jar包缓存,先到这里来查,如果这里查不到,2 就回去私服上找,如果私服也找不到,3 就会去中央库去找,4 找到jar后,会把jar信息同步到私服和本地仓库中如何理解私服:就是公司内部局域网的一台服务器,私服中存储了本公司的内部专用Jar,还充当了中央仓库的镜像,相当于一个代理!...

2019-04-12 09:53:58 173

原创 JavaConcurrency--Executor

线程池:构建一个新的线程是有一定代价的,因为涉及与操作系统的交互。如果程序中创建了大量的声明周期很短的线程,应该使用线程池。一个线程池中包含了许多准备运行的空闲线程。线程池的种类:newCachedThreadPool//必要时创建线程,空闲线程会被保持60秒neFixiedThreadPool//该池包含固定数量的线程:空闲线程会一直被保留newSingleThreadExecuto...

2019-04-07 20:22:52 205

原创 JavaConcurrency--并行数组操作

Java8 中 Arrays类提供了大量的并行化操作,静态Arrays.parallelSort方法可以对一个基本类型值or对象的数组排序。parallelSort方法:Arrays.parallelSort(words);//Arrays.parallelSort(words,Comparator.comparing(String::length)); //传入一个比较器对Arrays进行...

2019-04-07 15:19:31 300 1

原创 JavaConcurrency-CopyOnWrite容器

CopyOnWriteArrayList 和 CopyOnWriteArraySet 是线程安全安全的集合CopyOnWrite容器即写时赋值的容器,通俗理解就是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。优点:这样的好处是我们可以对CopyOnWrite容器进行...

2019-04-07 14:36:51 95

原创 JavaConcurrency-如何理解线程安全的集合CurrentHashMap为例

如果多线程要并发修改一个数据结构例如: 散列表,很容易会破坏这个数据结构,例如:一个线程可能要开始向表中插入一个新元素,假定在调整散列表各个桶之间的链接关系的过程中,被剥夺了控制权。如果另一个线程也开始比那里同一个链表,可能使用无效的链接并造成混乱,会爆出异常or陷入死循环。可以选择锁来保护共享数据结构,但是选择线程安全的实现作为替代可能更容易高效的映射,集合和队列:java.ut...

2019-04-06 19:59:16 534

原创 JavaConcurrency-Blocking queue(阻塞队列)

在开发设计多城中,应该尽量避免Java并发程序设计基础的底层构建块。使用有并发处理的专业人士实现的较高层次的结构要方便安全的多。许多多线程的问题,可以通过使用一个or多个队列以优雅且安全的当时将其形式化生产者线程向队列插入元素,消费者线程则取出他们。使用队列,可以安全地从一个线程向另一个线程传递数据。举列:考虑银行转账程序,转账线程将转账指令对象插入一个队列中,而不是直接访问银行对象。另...

2019-04-06 16:16:43 152

原创 JavaConcurrency- Synchronization(同步)

竞争条件(race condition)在大多数实际的多线程应用中,两个or两个以上的线程需要共享对同一数据的存取。如果两个线程存取相同的对象,并且每一个线程都调用了一个修改该对象的方法,线程之间彼此踩了对方的脚,根据各县城访问数据的次序,可能会产生错误的对象。这种情况就是竞争条件(race condition)account[to]+=account;问题在于这不是原子操作。该指令可能被...

2019-04-06 14:01:53 296

原创 JavaConcurrency-DaemonThread

守护线程可以通过调用如下方法,把线程转变为守护线程(daemon thread)void setDaemon(boolean isDasemon) //标识该线程为守护线程or用户线程。这一方法必须在线程启动之前调用守护线程的唯一作用就是为其他线程提供服务。计时线程就是一个例子,它定时发送信号给其他线程or清空过时的告诉缓存项的线程。当只剩下守护线程时,虚拟机就退出了,由于如果只剩下守...

2019-04-03 11:34:16 105

原创 JavaConcurrency-BasicConcept

1 什么事线程多线程程序在较低的层次上扩展了多任务的概念:一个程序同事执行多个任务。每一个任务称为一个线程(thread)每个进程拥有自己的一整套变量,而线程则共享数据。2 Thread.currentThread 方法获取当前线程,(线程更多操作看 https://blog.csdn.net/u010122604/article/details/87560953)3 线程状态: 总共有6...

2019-04-03 11:28:16 91

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除