一、同步类容器 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。复合类操作如:迭代(反复访问元素,遍历完容器中的所有元素)、跳转(根据指定的顺序找到当前元素的下一个元素)、以及条件运算。这些复合操作在多线程并发的修改容器时,可能会表现出意外的行为,最经典的便是Concurrent ...
分类:
编程语言 时间:
2017-06-14 11:36:47
阅读次数:
141
生产者和消费者也是一个非常经典的多线程模式,我们在实际开发中应用非常广泛的思想理念。在生产-消费模式中:通常由两类线程,即若干个生产者的线程和若干个消费的线程。生产者线程负责提交用户请求,消费者线程则负责具体处理生产者提交的任务,在生产者和消费者之间通过共享内存缓存区进行通信 package com ...
分类:
编程语言 时间:
2017-06-14 11:35:12
阅读次数:
197
解释这个概念之前我们先来了解一个场景吧,财务系统的结账功能,这个功能可能是每个月用一次,在这一个月中相关的数据量已经积累得非常大,这一个功能需要调用好几个存储过程来完成。假如要调用5个存储过程,每个存储过程要执行5分钟左右,那么这5个加起来就要25分钟。现在用户要求优化,把结账功能的时间控制在10分 ...
分类:
编程语言 时间:
2017-06-14 11:31:04
阅读次数:
141
一、Executor框架 为了更好的控制多线程,jdk提供了一套线程框架Executor,帮助开发人员有效地进行线程控制。他们都在java.util.concurrent包中,是jdk并发包的核心。其中有一个比较重要的类:Executors,他扮演者线程工厂的角色,我们通过Executors创建特定 ...
分类:
编程语言 时间:
2017-06-14 11:28:48
阅读次数:
220
一、Concurrent.util常用类 1.CountDownLacth使用: 他经常用于监听某些初始化操作,等初始化执行完毕后,通知主线程继续工作 package thread3; import java.util.concurrent.CountDownLatch; public class ...
分类:
编程语言 时间:
2017-06-14 11:28:35
阅读次数:
165
一、进程与线程的区别 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位) 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位) 线程和进程 ...
分类:
编程语言 时间:
2017-06-08 00:11:05
阅读次数:
168
疑问: 1、run 方法中的代码执行完毕之后,独立线程立即退出,并且等待合适的时机由创建者线程加入(join)。 只能创建者线程加入join吗,什么是join? 2、 Thread extends Threaded implements Countable , Traversable , Array ...
分类:
编程语言 时间:
2017-05-23 23:42:09
阅读次数:
238
参考博客: http://www.cnblogs.com/yuanchenqi/articles/6083427.html http://www.cnblogs.com/yuanchenqi/articles/6811632.html 多线程和多进程的概念 http://www.cnblogs.co ...
分类:
其他好文 时间:
2017-05-14 12:17:19
阅读次数:
86
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文仅仅能说是java多线程的一个入门。事实上Java里头线程全然能够写一本书了,可是假设最基本的你都学掌握好,又怎么能更上一个台阶呢?假设你认为此文非常简单,那推荐你看看Java ...
分类:
编程语言 时间:
2017-04-22 09:18:02
阅读次数:
208
1.简介 java基础知识部分线程创建的三种方式、线程执行的样例。 代码地址:http://git.oschina.net/blue_phantom/javaj 包位置:package com.bluej.javaj.thread.first; 2.创建线程 继承Thread类、实现Runnale接 ...
分类:
编程语言 时间:
2017-03-08 18:55:04
阅读次数:
178