手机asp网站开发工具,网站怎么设置二级域名,苏州网站 建设 公司,wordpress calypso接着第1, 2篇后#xff0c;我们继续来跟进一下并发编程的其它内容#xff0c;如下#xff1a;
第9节 java.util.concurrent包
线程池
线程池的核心接口是ExecutorService。java.util.concurrent还提供了一个静态工厂类Executors#xff0c;其中包含用于创建配置线程池的…接着第1, 2篇后我们继续来跟进一下并发编程的其它内容如下
第9节 java.util.concurrent包
线程池
线程池的核心接口是ExecutorService。java.util.concurrent还提供了一个静态工厂类Executors其中包含用于创建配置线程池的工厂方法。
其实 静态工厂方法如下
工厂方法描述newSingleThreadExecutor只返回ExecutorService一个线程。newFixedThreadPool返回ExecutorService对象该对象且持有固定数量的线程。newCachedThreadPool返回ExecutorService对象该对象持有不同大小的线程池。newSingleThreadScheduledExecutor返回ScheduledExecutorService对象只返回1个线程 。newScheduledThreadPool返回一个ScheduledExecutorService核心线程集。newWorkStealingPool返回ExecutorService对象拥有多个任务队列以便减少连接数的线程池。
注意 调整线程池大小时大小是根据你的计算机中的逻辑核心数而定的。这个大小可以通过调用Runtime.getRuntime().availableProcessors()方法获得该值。 线程池实现描述ThreadPoolExecutor线程池大小可调整ThreadPoolExecutor实现了ExecutorService接口使用池里的线程来执行你提交的任务通常使用 Executors 工厂方法来配置。ScheduledThreadPoolExecutorThreadPoolExecutor的扩展并提供了执行定期任务的功能。ForkJoinPoolForkJoinPool实现了ExecutorService接口ForkJoinPool 采用分治思想将大任务分割成几个小任务小任务继续分割成更小的任务直至任务不可分割然后运行这些任务。
任务随着ExecutorService#submitExecutorService#invokeAll或者提交ExecutorService#invokeAny对于不同类型的任务具有多个重载。
其实 功能接口如下
接口描述Runnablerun()方法没有返回值。Callablecall方法有返回值。
Future
Future是对于具体的Runnable任务或Callable任务的执行结果进行取消、查询是否完成、获取结果。必要时可以通过get方法获取执行结果该方法会阻塞直到任务返回结果。
ExecutorService使用Future作为返回类型。
ExecutorService executorService Executors.newSingleThreadExecutor(); Future future executorService.submit(() - “结果”); try { String result future.get(1L, TimeUnit.SECONDS); System.out.println(“结果为 ” result “.”); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); } catch (ExecutionException e) { throw new RuntimeException(e.getCause()); } catch (TimeoutException e) { throw new RuntimeException(e); } assert future.isDone();
ReentrantLock锁
该java.util.concurrent.locks软件包括了经常使用到的Lock接口。ReentrantLock类其实也实现了synchronized关键字的功能还提供了其它功能例如获取有关锁的状态非阻塞tryLock()和可中断锁的信息。使用显式ReentrantLock的示例如下
class JamesCounter { private final Lock lock new ReentrantLock(); private int value;
int increment() { lock.lock(); try { return value; } finally { lock.unlock(); } } }
ReadWriteLock读写锁
java.util.concurrent.locks还包含一个ReadWriteLock接口ReentrantReadWriteLock实现读写锁通常允许多个并发读取但只允许一个写入。
class JamesStatistic { private final ReadWriteLock lock new ReentrantReadWriteLock(); private int value;
void increment() { lock.writeLock().lock(); try { value; } finally { lock.writeLock().unlock(); } }
int current() { lock.readLock().lock();
自我介绍一下小编13年上海交大毕业曾经在小公司待过也去过华为、OPPO等大厂18年进入阿里一直到现在。
深知大多数初中级安卓工程师想要提升技能往往是自己摸索成长但自己不成体系的自学效果低效又漫长而且极易碰到天花板技术停滞不前
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家初衷也很简单就是希望能够帮助到想自学提升又不知道该从何学起的朋友同时减轻大家的负担。
由于文件比较大这里只是将部分目录截图出来每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频 如果你觉得这些内容对你有帮助可以添加下面V无偿领取备注Android
最后
其实Android开发的知识点就那么多面试问来问去还是那么点东西。所以面试没有其他的诀窍只看你对这些知识点准备的充分程度。so出去面试时先看看自己复习到了哪个阶段就好。
下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题博主还把这些技术点整理成了视频和PDF实际上比预期多花了不少精力包含知识脉络 诸多细节 以上【历年大厂高级工程师面试题集】、【Android高级进阶教学视频】、【Android高级知识点学习PDF】皆无偿分享给大家。如有需要点击**【Android架构视频BATJ面试专题PDF学习笔记】**即可免费获取。
d高级进阶教学视频】、【Android高级知识点学习PDF】皆无偿分享给大家。如有需要点击**【Android架构视频BATJ面试专题PDF学习笔记】**即可免费获取。
整理不易望各位看官老爷点个关注转发谢谢祝大家都能得到自己心仪工作。