随笔分类 - 多线程学习
摘要:本文简要介绍Java并发编程方面常用的类和集合,并介绍下其实现原理。AtomicInteger可以用原子方式更新int值。类 AtomicBoolean、AtomicInteger、AtomicLong 和 AtomicReference 的实例各自提供对相应类型单个变量的访问和更新。基本的原理都是...
阅读全文
摘要:在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。synchronized同步块大家都比较熟悉,...
阅读全文
摘要:Java线程:概念与原理一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行...
阅读全文
摘要:Read-Write Lock Pattern【读写】一:Read-Write Lock Pattern的参与者--->读写锁--->数据(共享资源)--->读线程--->写线程 二Read-Write Lock Pattern模式什么时候使用--->* 为了多线线程环境下保护数据安全,我们必须避免...
阅读全文
摘要:Producer-Consumer【生产消费者模式】一:Producer-Consumer pattern的参与者--->产品(蛋糕)--->通道(传递蛋糕的桌子)--->生产者线程(制造蛋糕的线程)--->消费者线程(吃掉蛋糕的线程) 二:Producer-Consumer pattern模式什么...
阅读全文
摘要:timed【超时模式】案例:一个线程提供下载数据,另一个线程执行下载,如果有5秒钟以上,提供下载的线程没有提供数据,下载线程因超时异常,停止下载线程运行。超时异常类/** * */package com.benxq.thread6;import java.util.concurrent.Execu...
阅读全文
摘要:Balking【返回模式】timed【超时模式】一:balking pattern的参与者--->GuardedObject(被警戒的对象)--->该模式的角色:模拟修改警戒对象的线程,当警戒条件达到执行具体操作的线程,参与者(被警戒的参与者) 二:balking pattern模式什么时候使用--...
阅读全文
摘要:Guarded Suspension【生产消费者模式】一:guarded suspension的参与者--->guardedObject(被防卫)参与者 1.1该参与者拥有一个被防卫的方法(getRequest),如果警戒条件达成,则执行。警戒条件不达成,则线程进入wait set 1.2该参与者还...
阅读全文
摘要:Immutable pattern【坚不可摧模式】一:immutable pattern的参与者--->immutable(不变的)参与者 1.1:immutable参与者是一个字段的值都无法更改的类。 1.2:immutable也没有任何用来更改字段值的方法。 1.3:immutable参与者方法...
阅读全文
摘要:Single Threaded Execution Pattern【独木桥模式】一:single threaded execution pattern的参与者--->SharedResource(共享资源)二:single threaded execution pattern模式什么时候使用--->...
阅读全文
摘要:前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列 类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场 ...
阅读全文
摘要:模拟场景:main方法为网络请求线程(也叫生产者线程),在网络请求线程中开启四个线程(消费者线程),进行高效处理队列中的共同资源(生产者线程生产的共同资源),等待资源处理完毕,网络请求线程执行结束,响应客户端。消费者线程体 1 /** 2 * 3 */ 4 package com.be...
阅读全文

浙公网安备 33010602011771号