Java
如火也如荼
stay hungery, stay foolish. self control and smart is a new sexy,
展开
-
Java多线程读写文件
一、背景知识多线程可以提高任务的执行效率,尤其是CPU计算密集型任务读写文件是IO密集型任务过多的线程执行同一个任务,并不一定能提高效率,因为线程切换,需要耗时。再比如IO密集型任务,IO是瓶颈,并不是线程越多,IO会越快。开多线程去执行任务,需要综合考虑实际情况。二、问题最近项目中遇到,安装APK(其中有拷贝apk文件到具体路劲的逻辑),考虑到优化,缩短这里的apk文件拷贝时间。...原创 2020-04-17 20:56:56 · 3283 阅读 · 0 评论 -
关于CountDownLatch的原理与使用
构造器中的计数值(count)实际上就是闭锁需要等待的线程数量。这个值只能被设置一次,而且CountDownLatch没有提供任何机制去重新设置这个计数值。与CountDownLatch的第一次交互是主线程等待其他线程。主线程必须在启动其他线程后立即调用CountDownLatch.await()方法。这样主线程的操作就会在这个方法上阻塞,直到其他线程完成各自的任务。其他N 个线程必须引用闭锁对象,因为他们需要通知CountDownLatch对象,他们已经完成了各自的任务。这种通知机制是通过 Co原创 2019-09-18 21:33:49 · 172 阅读 · 0 评论 -
《Java并发编程艺术》读书笔记
1. 多线程并不一定比串行任务省时原因是多线程存在上下文切换问题,需要时间2. 避免死锁的方法死锁产生的四大要素资源占有且不释放资源不可抢占资源的互斥存在循环引用3. 避免死锁(银行家算法)避免一个线程同时占有多个锁避免一个锁内占用多个资源尝试使用定时超时锁,lock.tryLocal(timeOut)数据库锁,获取锁和释放锁必须在同一个数据库连接中4. 同...原创 2019-09-19 11:26:27 · 85 阅读 · 0 评论