多线程&并发编程
文章平均质量分 74
SUN123565
这个作者很懒,什么都没留下…
展开
-
java keywords -final
第一篇从final关键字说起 Contentsfinal基本用法final深入理解 final基本用法 final:无法改变的 1.1 final field: final field 有两种解释: (1)不会改变的编译时常量:编译器可以将该常量带入带能用到它的计算式中,在编译时执行计算,可以减轻运行时负担。此时的常量必须是 fina原创 2016-09-18 13:57:48 · 356 阅读 · 0 评论 -
多线程 Callable Runnable 与Future
本文按: 1. Callable 与Runnable的使用 2. Callable 与Runnable的区别 3. Future的使用 4. FutureTask的使用1. Callable 与Runnable的使用Callable经常与ExecutorService配合使用,用于提交带有返回值的任务; Runnable可以与thread pool配合使用也可以单独使用。具体的使用方法如下:原创 2017-12-07 06:49:28 · 423 阅读 · 0 评论 -
多线程 Thread 与 Runnable类
1. 如何在java中实现多线程java中实现多线程有两种方式 (1)继承Thread类 (2)实现Runnable接口其中java.lang.Thread 类也 实现了Runnable 接口,实现了Run方法。2.分析两种实现方式哪一种更优实现Runnable 优于继承Thread类,原因有以下: (1)java 类只能继承一个,但是却能实现多个接口,所以以实现接口的方式更灵活; (2原创 2017-12-07 02:36:32 · 302 阅读 · 0 评论 -
JSR 133 Java 内存模型(JMM)FAQ
本文按:红色字体-重要 绿色字体-不太懂 蓝色字体-非常重要一. 什么是内存模型 二. 其他语言C++是否有内存模型 三. JSR 133 是关于什么的 四. 重排序是什么意思 五. 旧的JMM有什么缺陷 六. 不正确的同步意味着什么 七. 同步都做了哪些操作 八. 在旧的内存模型中final域为什么可以改变值 九. final域在新的JMM中是如何工作的 十. vo翻译 2017-12-12 04:15:31 · 514 阅读 · 0 评论 -
Java 线程状态
本文按:一. Java 线程的几种状态及说明 二. 示例程序一. Java线程的状态Java线程的状态可以在Java.lang.Thread.State中获取到,其中标识的状态有以下六种:(1)NEW:创建新的线程,还没启动(2)RUNNABLE:调用start()后正在执行的线程(3)BLOCKED:阻塞状态,等待锁的释放, 比如线程A进入了一个synchronized方法,线程B也想进入这原创 2017-12-08 04:47:14 · 342 阅读 · 0 评论 -
HashMap 与 ConcurrentHashMap
传送门:http://ifeve.com/concurrenthashmap/转载 2017-12-08 15:17:33 · 240 阅读 · 0 评论 -
Java 并发编程 Copy-On-Write
转自:http://ifeve.com/java-copy-on-write/Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是Cop转载 2017-12-08 14:56:39 · 264 阅读 · 0 评论 -
I/O 阻塞&非阻塞&同步&异步
阻塞(blocking)&非阻塞(non-blocking)I/O阻塞/非阻塞的关注点在与调用者是否等待被调用者返回。在实际应用中,大多数I/O请求是阻塞的,这意味着在I/O完成之前,控制权不会回到调用者手中。这种延迟在某些情况下会非常长,比如说执行read()或者write()操作。而非阻塞I/O**会在发出IO请求后控制权立即转移到调用者手中**,即使数据包没有准备好,也会返回一个错误标识,使得控制权立即转移到调原创 2017-03-08 06:25:20 · 459 阅读 · 0 评论 -
Java 程序死锁问题原理及解决方案
本文首先介绍了死锁发生的原因,并通过一个示例解释了死锁发生的前提情况。然后通过 JVM 的 jstack 工具演示了如何确定一个死锁的发生。最后对死锁的预防、恢复等方式进行了解释。 ava 语言通过 synchronized 关键字来保证原子性,这是因为每一个 Object 都有一个隐含的锁,这个也称作监视器对象。在进入 synchronized 之前自动获取此内部锁,而一旦离开此方式,无论是完转载 2016-10-11 23:42:33 · 5589 阅读 · 0 评论 -
final关键词在多线程环境中的使用
原文:http://www.javamex.com/tutorials/synchronization_final.shtml Contents为什么final在多线程中是必要的final对象的引用final的局限性什么时候需要使用final自java 5 起, final关键词在并发中的一个特殊应用是非常重要而且常常被忽视的,实际上,fianl 可以保证正在创转载 2016-09-18 13:57:54 · 11001 阅读 · 1 评论 -
java volatile关键字
本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/ftf-java-volatile 从并发编程网上转来,mark一下,好好学习http://ifeve.com/volatile/引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器转载 2016-09-18 13:58:17 · 294 阅读 · 0 评论 -
Java 并发编程-阻塞队列
转自:http://www.cnblogs.com/dolphin0520/p/3932906.html在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒转载 2017-12-08 09:35:59 · 224 阅读 · 0 评论