上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 一.线程状态的切换 5种 二.深入理解run()和start() run方法就是普通对象的普通方法,只有调用了start()后,Java才会将线程对象和操作系统中实际的线程进行映射,再来执行run方法 运行结果: 放开start(),注释run()之后: 三.ForkJoin 框架 思想:分而治之 阅读全文
posted @ 2019-01-15 23:34 梦里南柯 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 一.NIO和BIO的对比 BIO通信模型 2.配置 BIO tomcat server.xml NIO 3.NIO 阅读全文
posted @ 2019-01-14 00:01 梦里南柯 阅读(177) 评论(0) 推荐(0) 编辑
摘要: FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的,多用于耗时的计算。 一.FutureTask的三种状态 二.get()和cancel()执行示意 三.使用 一般FutureTask多用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果。 3.1 Fut 阅读全文
posted @ 2019-01-11 11:49 梦里南柯 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 一.线程池的主要处理流程 ThreadPoolExecutor执行execute方法分下面4种情况。 1)如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意,执行这一步需要获取全局锁)。 2)如果运行的线程等于或多于corePoolSize,则将任务加入BlockingQu 阅读全文
posted @ 2019-01-11 11:34 梦里南柯 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一.等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作,像加强版的join。(t.join()是等待t线程完成) 例: (1)开启多个线程分块下载一个大文件,每个线程只下载固定的一截,最后由另外一个线程来拼接所有的分段;解析一个Excel 阅读全文
posted @ 2019-01-10 12:38 梦里南柯 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 一.线程不安全的HashMap 多线程环境下,使用HashMap进行put操作会引起死循环(jdk1.7 Entry链表形成环形数据结构),导致CPU利用率接近100%。 结构:数组 table[]+链表entry<k,v>put 对key做hash默认初始化数组长度 16加载因子 0.75扩容 大 阅读全文
posted @ 2019-01-10 09:58 梦里南柯 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 四.Redis简介 redis为什么这么快 4.1 Redis数据类型 String hash 字典,适用于存储对象 list 安照String元素插入顺序排序,最新插入的最先显示。如热点数据 set String元素组成的无序集合,不允许重复。如微博共同关注等功能 zset 从小到大的排序,分数一 阅读全文
posted @ 2019-01-09 23:48 梦里南柯 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 一.Lock接口的几个功能: 显示的获取和释放锁 尝试非阻塞的获取锁 能被中断的获取锁 超时获取锁 使用方式: Lock的API 二.AQS 定义:用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。是实现锁的关键。 同步 阅读全文
posted @ 2019-01-09 12:32 梦里南柯 阅读(184) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储结构。这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值。目的就是为了让线程能够有自己的变量 可以通过set(T)方法来设置一个值,在当前线程下再通 阅读全文
posted @ 2019-01-09 11:03 梦里南柯 阅读(233) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-01-08 22:25 梦里南柯 阅读(1) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页