摘要:
Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程 阅读全文
posted @ 2018-08-08 17:43
zhangniuniu
阅读(111)
评论(0)
推荐(0)
摘要:
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本 阅读全文
posted @ 2018-08-08 16:38
zhangniuniu
阅读(166)
评论(0)
推荐(0)
摘要:
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得 阅读全文
posted @ 2018-08-08 16:36
zhangniuniu
阅读(142)
评论(0)
推荐(0)
摘要:
Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接 阅读全文
posted @ 2018-08-08 16:20
zhangniuniu
阅读(165)
评论(0)
推荐(0)
摘要:
Java并发编程:并发容器之CopyOnWriteArrayList(转载) 原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个 阅读全文
posted @ 2018-08-08 15:29
zhangniuniu
阅读(119)
评论(0)
推荐(0)
摘要:
Java并发编程:同步容器 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同 阅读全文
posted @ 2018-08-08 14:36
zhangniuniu
阅读(107)
评论(0)
推荐(0)
摘要:
Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过syn 阅读全文
posted @ 2018-08-08 14:34
zhangniuniu
阅读(120)
评论(0)
推荐(0)
摘要:
Java并发编程:synchronized 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 阅读全文
posted @ 2018-08-08 14:33
zhangniuniu
阅读(114)
评论(0)
推荐(0)
摘要:
一、出现背景 1、线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 2、效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激 阅读全文
posted @ 2018-08-08 13:41
zhangniuniu
阅读(223)
评论(0)
推荐(0)
摘要:
一、HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度 阅读全文
posted @ 2018-08-08 10:23
zhangniuniu
阅读(166)
评论(0)
推荐(0)
摘要:
一、集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。2. 集合接口:6个接口(短 阅读全文
posted @ 2018-08-08 10:22
zhangniuniu
阅读(141)
评论(0)
推荐(0)
摘要:
1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放 阅读全文
posted @ 2018-08-08 10:20
zhangniuniu
阅读(291)
评论(0)
推荐(1)

浙公网安备 33010602011771号