多线程高并发
文章平均质量分 76
weixin_40657079
这个作者很懒,什么都没留下…
展开
-
java并发编程从入门到精通-----1.进程并发基础概念
《java并发编程从入门到精通》这本书详细介绍了java并发基础的概念\工作原理\编程技巧和注意事项,对java高性能并发编程有极大的参考价值,下面就结合自己对这本书的理解,进行自己学习的过程.(这本书的pdf可以在此点击下载) CPU核心数线程数多核心:也指单芯片,多处理器其思想是将大规模并行处理器,集成到一个芯片内处理器并行执行不同的进程多线程:多线程称可以通过复制处理器上的结...原创 2018-08-19 14:41:55 · 317 阅读 · 0 评论 -
Single Threaded Execution
定义Single Threaded Execution模式定义:同一时间能够执行的线程只有一个。引例一次只允许一个人通过的门类说明 名字 说明 Main 创建门,让3个人不断通过 Gate 门,通过时记录姓名和出生地。如果姓名和出生地不一致,拒绝通过 UserThread 人,人们不断通过门 public class Main { p...翻译 2019-02-28 17:34:23 · 124 阅读 · 0 评论 -
immutable模式--想破坏也破坏不了
定义:immutable模式存在着确保实例状态不发生改变的类。在访问这些事例时不需要执行互斥的处理。引例:这是一个使用了immutable模式的小例子。类的一览表 名字 说明 person 人的类 main 测试行为类 printpersonthread 显示person示例的线程类 /* * * 1.final class Perso...翻译 2019-02-28 18:03:10 · 197 阅读 · 0 评论 -
Guarded Suspension模式 --等我准备好
定义:Suspension模式通过线程等待来保证实例的安全性。引例类的一览表 名字 说明 Request 请求类 RequestQueue 依次存放求情的类 ClientThread 发送请求类 ServerThread 接受请求类 Main 测试行为类 public class Request { private fi...翻译 2019-02-28 18:22:27 · 145 阅读 · 0 评论 -
Balking模式--不需要就算了
定义:Balking模式也有守护条件,如果守护条件不成立,立即中断处理。引例名字 说明 Data SaverThread ChangeThread Main public class Data { private String filename; //修改是的名字 private String ...翻译 2019-02-28 18:41:15 · 219 阅读 · 0 评论 -
Producer-Consumer--生产者消费者
定义:Producer-Consumer--生产者消费者模式:生产者将数据交给消费者。引例:类的一览表 名字 说明 main 测试行为类 makethread 厨师类 eaterthread 客人类 table 桌子类 /* * * ProducerConsumer中的角色 * 1.producer * ...翻译 2019-03-02 14:12:39 · 407 阅读 · 0 评论 -
Read-Write Lock模式 --大家一起读可以,读的时候不要写
定义:线程执行读取操作时,实例的状态不会发生改变,所以多个线程可以同时读取。线程执行写取操作时,实例的状态可能会发生改变,所以多个线程不可以同时写入。引例类的一览表 名字 说明 main 测试行为的类 data 可以读写的类 writerthread 写入线程 readthread 读取线程 readwritelock 提供读写...翻译 2019-03-10 13:32:43 · 307 阅读 · 0 评论 -
Thread-Per-Message模式 这项工作交给你
定义:在Thread-Per-Message模式中,消息的委托者和执行者是不同线程的,消息的委托者把消息的交给执行者去执行。引例类的一览表 名字 说明 mian 向host发送 字符显示请求的类 host 针对请求创建的类 helper 提供字符显示功能的被动类 public class Main { public static vo...翻译 2019-03-10 13:47:28 · 132 阅读 · 0 评论 -
Worker Thread模式--工作没来就一直等,工作来了就干活
定义:Worker Thread模式也叫背景模式或者线程池模式,工作线程逐个取回并处理,在所有工作完全完成后,线程等待新的工作到来。引例:类的一览表 名字 说明 main 测试行为类 clientthread 表示发出工作的类 request 表示工作请求的类 channel 接受工作并将工作请求交给工人线程 workerthread...翻译 2019-03-10 13:59:13 · 391 阅读 · 0 评论 -
Future模式 --先给你提货带
定义:获取Future角色的线程会在稍后使用Future角色来获得运行的结果。引例:类的一览表 名字 说明 main 向host发出请求并获取数据 data 表示访问数据方法的接口。 host 向请求返回futuredata实例的类 futuredata 表示提货带类 realdata 表示真实数据 public clas...翻译 2019-03-10 14:08:23 · 142 阅读 · 0 评论 -
thread-specific stroage模式 一个线程一个储物柜
定义:thread-specific stroage模式 是一种即使只有一个入口,也会在内部为每个线程分配特定的空间的模式引例:不用thread-specific stroage模式 的实例public class Log { private static PrintWriter writer = null; // 初始化writer字段 stati...转载 2019-03-02 14:27:04 · 110 阅读 · 0 评论 -
水滴石穿--多线程安全同步与锁
什么是线程安全?当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为, 那么这个类(对象或方法)就是线程安全的。java内存模型 在说明多线程安全问题前,要明白java内存模型。为什么有线程安全问题?当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。经典售票问题...原创 2018-12-12 13:26:41 · 120 阅读 · 0 评论 -
水滴石穿--多线程入门
前记:鄙人大三信息管理与信息系统专业,写这一个系列的目的就是为了好好磨磨自己的秉性,再好好从基础一步一步走一遍,顺便总结总结自己写代码时才过的坑,也为下一次机会做准备。这一学年我通过传智播客视频课的形式学习了JAVA EE,又在假期好好看了一些计算机方向的书籍,自以为有所收获(其实自己是过于自信)。一次学校导员发的一个百度javaee实习信息,我就自不量力的附上了自己的简历去试试,人家直接电话...原创 2018-12-12 10:27:59 · 109 阅读 · 0 评论 -
java并发编程从入门到精通----2.认识java中的Thread(上)
线程实现的3种方法终于要写代码了!!!1.继承Thread覆run()方法public class ThreadA extends Thread { @Override public void run() { // TODO Auto-generated method stub super.run(); try { Thread.sleep(500L); }...原创 2018-08-19 15:33:33 · 137 阅读 · 0 评论 -
java并发编程从入门到精通----2.认识java中的Thread(下)
线程的中断机制1.调用Thread.stop()该方法强迫停止一个线程并抛出新建立的ThreadDeath对象作为异常,停止一个尚未启动的线程是允许的,如果稍后再启动该线程,它会立刻停止。该方法是不安全的,已经不建议再使用,java以后的版本中他将不复存在。2.调用Thread.interrupt()中南是一种协作机制,也就是说通过中断,并不能直接通知另一个线程,而需要被中断线程自...原创 2018-08-19 20:41:07 · 157 阅读 · 0 评论 -
java并发编程从入门到精通----7.fork/join
概述Fork/Join框架是一个Java 7提供的用于并行执行任务的框架,是一个把大型任务分割成若干个小任务最终汇总每个小任务结果后得到大任务结果的框架。工作窃取算法工作窃取算法是指某个线程从其他队列里窃取任务来执行。使用工作窃取算法可以充分利用线程进行并行计算,减少了线程间的竞争。但是在某些情况下还是存在竞争,比如双端队列里只有一个任务时。并且该算法会消耗更多的系统资源,比如创建多个...转载 2018-10-01 00:27:35 · 205 阅读 · 0 评论 -
Disruptor 极速体验
已经不记得最早接触到 Disruptor 是什么时候了,只记得发现它的时候它是以具有闪电般的速度被介绍的。于是在脑子里, Disruptor 和“闪电”一词关联了起来,然而却一直没有时间去探究一下。 最近正在进行一项对性能有很高要求的产品项目的研究,自然想起了闪电般的 Disruptor ,这必有它的用武之地,于是进行了一番探查,将成果和体会记录在案。一、什么是 Disrupto...转载 2018-10-29 20:12:03 · 99 阅读 · 0 评论 -
水滴石穿--多线程原子操作、threadlocal、volatile、多线程下的单例模式
接着上一篇文章,下面看看几个比较好理解的知识点!!volatilejava关键字volatile修饰的变量从字面意义上理解易变的,不稳定的,事实上时告诉编译器该变量是易变的不要对该变量使用缓存等级的优化,每次都从内存地址中读取值。不过并没有说明在对volatile修饰的变量进行修改后立即写会内存地址,也就是说volatile只提供内存的可见性,而没有提供原子性,所以在高并发下是不安全的...原创 2018-12-12 14:49:55 · 404 阅读 · 0 评论 -
水滴石穿--多线程wait notfiy 方法CountDownLatch、CyclicBarrier、Semaphore
前言在前面介绍了线程入门、线程安全、线程的一些琐碎的知识点,现在我们讲讲如何让线程变得听话,指挥线程执行。wait notfiy首先声明一点wait( ),notify( ),notifyAll( )都不属于Thread类,而是属于Object基础类,也就是每个对象都有wait( ),notify( ),notifyAll( ) 的功能,因为每个对象都有锁,锁是每个对象的基础,当然操作...原创 2018-12-12 19:51:30 · 122 阅读 · 0 评论 -
水滴石穿--多线程安全的集合
线程安全的集合类主要介绍HashTable,ConcurrentHashMap,CopyOnWriteArrayList,CopyOnWriteArraySet,Vector,常用的StringBuffer与StringBuild。由于线程安全的集合类用法都比较简单,所以下面更多是看看源码。Vector/** * 多线程使用Vector或者HashTable的示例(简单线程同步...原创 2018-12-12 20:50:05 · 103 阅读 · 0 评论 -
水滴石穿--多线程线程池
线程池在公司面试,平时的代码以及在各个开源框架中都常见,所以在这一章我们好好讲讲线程池。什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行...原创 2018-12-13 11:10:47 · 92 阅读 · 0 评论 -
水滴石穿--多线程应用
讲了这么多基础,我们开始做点应用检验一下自己学的知识。订单模式先提交订单,等到生产好了再交付。public interface Data { String getRequest();}public class RealData implements Data { private String result; public RealData(String query...原创 2018-12-13 11:17:12 · 104 阅读 · 0 评论 -
two-phase termination模式-- 先收拾房间再睡觉
定义:分两段终止。她是一种先执行完终止处理再终止线程的模式。引例:类的一览表 名字 说明 countupthread 表示技术的线程的类 main 测试行为的类 public class CountupThread extends Thread { // 计数器的值 private long counter = 0; //...翻译 2019-03-10 14:15:01 · 114 阅读 · 0 评论