java 多线程

runable 

与thread 类类似

callable 

future 模式: 并发模式的一种: 可以偶2种形式,无阻的和阻塞的形式,分别是isDone和get ,其中future 对象用来存放该线程的返回数值以及状态。

ExecuteSreviece e=new Excutors.newFixedThreadPool(3);

//submit 方法有多重的版本的,支持的callable 也能够只是runable 借口类型

future future=e.submit(new myCallable);

future.isDone

future.get();

 

 

:高级多线程控制类

java 1.5 提供了java,util.concurrent 提供了大量的高级公祖

1.ThreadLocal 类

用处: 保存线程的苏丽变量,对一个线程类(继承自thread 类)

当使用thread 类维护变量时,threadLocal 为每个使用该变量的线程提供苏丽的比爱你量副本,搜易每一个线程都独立的改变自己的副本,而不会影响其他线程诶定的副本,常用语用户登录空值,如纪录session,信息等。

 

实现: 每个Thread 类都以一个Thread类的Three啊LocalMap 的类型 变量(该类是一个清凉jie'bjie的iebMap,)。

map 是主要哦是get,set(T a) ,set 之后在Map中维护一个threaLocal->a .threadLoal 是一个特殊的容器。

 

 

2.原子类(aotmiInter,AtomicBoolean)

如果使用atomic warrpped class 如atomc intefer 或者使用记得保证院子的操作,则等同于synied.

//返回的数值为boolean

if(b.value.compareAndSet(old,value)){

  return  ;

} else{

3.lock 类

在java,util,concurrent 包内 有三个实现:

ReentrantLock
ReentrantReadWriteLock.ReadLock
ReentrantReadWriteLock.WriteLock

主要是和synchroied 一样,两者都是解决同步问题,处理资源诊断而长生的技术。功能类似的还有一些区别

区别如下: 

lock 更灵活,可以自由的顶多枷锁解锁数序按照县家的后解开的数序的

提供多种枷锁方法,lock 阻塞时,trylock 无阻塞时 ,lockInterrupated 可打算的

本质上和监事锁和synchronied 是一样的。

 

 

4.容器类

这里就讨论比较常用的2个。

bloackQueue 

Concuttent哈市Map 

BlockingQueueu 

阻塞队列。该类是Java.utilconcurrnet 包下的中药类,通过对Queueu的学习可以得知这个queueuq 是单向的。类在

对立的又不体哪家元素子啊对立诶为删除或取出元素。雷伊一个管道,特别适合于先进西拿出的策略。

普通的queue 借口哦主要是先有prirityQueue(优先队列),有兴趣的 可以研究下。

BlaclingQueueu 

除了传统的queue 功能,还提亲了则色接口put 和take,带超时限制的offfer 和poll .put 会在队列慢的时候的堵塞,知道有空间被唤醒,take 在队列的空的时候,拿出来唤醒。

常见的阻塞的队列:

ArrayListBalockQueueu 

LinkedListBlockingQueue

DelayQueue

synchronousQueue

concurrentHashMap

 高效的线程安全哈市nao o

 

5.管理类

管理类的概念的比较,用于管理线程,本省不是多心啊的,但是听了一些机制来利用上述的工具做一些防撞l

了解的值得一提的管理类的;ThreadpoolExcutor 和JMX 框架的系统管理bean.

该内部类通过treadPool微信侧踢欧尼的实现的,掌握的有助于理解鲜橙汁的管理的本质上,本质上她们都是threaPoolExceotion 累的各种实现版本。

 

翻译一下5个参数:

corePoolSize; 池内的线城市出最小的数值,

maximnumPoolsize : 线程的最大数值,线程的增长是中欧不会超过高的是中欧。

keepalive Time:当池内县城说高于corePoolsize 时进过多上时间多余共享的才诶回收,

unit:时间单位;可以使ING用TimeUnitmilisendcons 

workQueue: 带入任务的当代张所,该参数主要哦影响调度策略,如公平与否,是否长生额死。

threadFacTory:  线程工厂类,有默认实现,如果有自动以的需要则需要实习实心ThreadFactory并作为参数传入。

 

参考资料:

https://www.cnblogs.com/wxd0108/p/5479442.html

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迅捷的软件产品制作专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值