Java多线程
周周Blog
对技术充满敬畏
展开
-
Java多线程基础之对象锁的同步与异步
同步:synchronized 同步的概念就是共享,如果不是共享的资源,就没有必要进行同步。 异步:asynchronized 异步的概念就是独立,相互之间不受到任何制约。同步的目的就是为了线程安全,对于线程安全来说,需要满足两个特性:(原子性)同步可见性原创 2017-06-06 15:42:29 · 1397 阅读 · 0 评论 -
Java多线程之深入理解synchronize关键字
synchronize锁重入:关键字synchronize拥有锁重入的功能,也就是在使用synchronize时,当一个线程的得到了一个对象的锁后,再次请求此对象是可以再次得到该对象的锁。 当一个线程请求一个由其他线程持有的锁时,发出请求的线程就会被阻塞,然而,由于内置锁是可重入的,因此如果某个线程试图获得一个已经由她自己持有的锁,那么这个请求就会成功,“重入” 意味着获取锁的 操作的粒度是“线程原创 2017-06-07 16:14:42 · 11371 阅读 · 0 评论 -
Java多线程之模拟一个阻塞队列
import java.util.LinkedList;import java.util.concurrent.atomic.AtomicInteger;public class MyQueue { private final LinkedList<Object> list = new LinkedList<>(); //需要一个计数器,统计加入List集合元素的个数原创 2017-06-08 17:52:29 · 963 阅读 · 0 评论 -
Java多线程之同步类容器与并发容器
同步容器类同步容器类包括Vector和HashTable,而且是早期JDK的一部分,这些同步的封装器类是由Collections.synchronizedxxx等工厂方法创建的。例如 Map<String,String> map =Collections.synchronizedMap(new HashMap<String,String >());HashMap本来不是线程安全的,但是上面的map原创 2017-06-09 14:03:32 · 1282 阅读 · 0 评论 -
Java多线程之Executor框架
Executors创建线程池的方法:public static ExecutorService newFixedThreadPool(int nThreads) 创建固定数目线程的线程池。public static ExecutorService newCachedThreadPool() 创建一个可缓存的线程池,调用execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用转载 2017-06-12 17:04:32 · 241 阅读 · 0 评论