![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 57
zxadcsdn
这个作者很懒,什么都没留下…
展开
-
java笔记short相加自动转换
精度小于int的数值运算的时候都回被自动转换为int后进行计算 所以,下面的代码会报编译错误 short s1 = 5; short s2 = 3; s1= (s1+s2); 必须改成: short s1 = 1; short s2 = 1; s1= (short)(s1+s2); 但是,s1+=4;是正确的原创 2016-09-27 16:50:40 · 1890 阅读 · 0 评论 -
对象的共享——可见性
可见性 单线程,写入读取,很自然。 多线程,当一个线程写入数据,一个读取时候,会产生一系列问题,无法确保读操作的线程看到其他线程写入的数据,因此,需要使用同步。 public classNovisibility{ private static boolean ready; private static int number; private static class...原创 2018-08-26 10:28:39 · 438 阅读 · 0 评论 -
ClassLoader类结构
作用 将Class加载到JVM 审查类由谁加载 字节码解析成JVM统一要求的对象格式 类结构分析 常用方法: findClass(String) Class<?>; loadClass(String) Class<?>; resolveClass(Class<?>) void; defineClass(b原创 2018-10-15 09:38:03 · 197 阅读 · 0 评论 -
同步工具类(闭锁,信号量,FutureTask,信号量,栅栏)
同步工具类可以使任何一个对象,只要它根据自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括信号量,栅栏以及闭锁。 所有的同步工具类都包含一些特定的结构化属性:封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,还提供一些方法对状态进行操作,自己用于高效的等待同步工具类进入预期状态的方法。 闭锁 可以延迟线程的进度直到其到达终止状态。 闭锁作用相当...原创 2018-11-04 18:12:14 · 350 阅读 · 0 评论 -
线程池(Executor框架)
任务是一组逻辑工作单元,而线程则是使任务异步执行的机制。 当把所有任务都放在单个线程中串行执行时,会产生糟糕的响应性; “为每个任务分配一个线程”资源管理的复杂性会升高,不足如下: 线程生命周期的开销非常高。(创建和销毁) 资源消耗 活跃资源消耗资源,尤其内存。当可运行线程大于可用处理器时,有些线程将闲置,从而闲置线程占用许多内存,给垃圾回收器带来压力,而且在竞争CPU会有其他性能消耗。 稳定性...原创 2018-11-07 08:54:10 · 842 阅读 · 1 评论 -
Future和Callable,CompletionService实现并行化
Callable和Future实现并行化 Future表示一个任务的生命周期,并可以判断是否完成和取消。 接口 方法如下: boolean cancel(boolean);取消任务 V get();获取结果,阻塞等待 V get(long, TimeUnit);最大超时等待(时间,时间单位) boolean isCancelled(); boolean isDone(); 如下面代码示例:当加载...原创 2018-11-07 21:09:54 · 204 阅读 · 0 评论 -
构建 高效可伸缩的结果缓存
通过HashMap实现缓存 Computable接口 public interface Computable<A, V> { V compute(A arg) throws InterruptedException; } **ExpensiveFunction **(表示结果的计算过程) public class ExpensiveFunction implements Compu...原创 2018-11-05 08:45:46 · 166 阅读 · 0 评论