线程
来来我是水果
这个作者很懒,什么都没留下…
展开
-
线程基础、线程之间的共享和协作
基础概念 CPU核心数和线程数的关系 核心数:线程数=1:1 ;使用了超线程技术后---> 1:2 CPU时间片轮转机制 又称RR调度,会导致上下文切换 什么是进程和线程 进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源 线程:CPU调度的最小单位,必须依赖进程而存在。 澄清并行和并发 并行:同一时刻,可以同时处理事...原创 2019-02-25 21:49:11 · 90 阅读 · 0 评论 -
线程基础、线程之间的共享和协作
基础概念 CPU核心数和线程数的关系 核心数:线程数=1:1 ;使用了超线程技术后—> 1:2 CPU时间片轮转机制 又称RR调度,会导致上下文切换 什么是进程和线程 进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源 线程:CPU调度的最小单位,必须依赖进程而存在。 澄清并行和并发 并行:同一时刻,可以同时处理事情的能力 并发:与单位时间相关,在单位时间内可以处理...翻译 2019-04-08 21:03:04 · 179 阅读 · 0 评论 -
线程的并发工具类
Fork-Join 什么是分而治之? 规模为N的问题,N<阈值,直接解决,N>阈值,将N分解为K个小规模子问题,子问题互相对立,与原问题形式相同,将子问题的解合并得到原问题的解 工作密取 线程A 获取线程B 的task , 执行完后把结果给B 使用的标准范式 Fork/Join的同步用法同时演示返回结果值:统计整形数组中所有元素的和 单线程计算: 使用 Fork/Join:...翻译 2019-04-09 22:10:24 · 128 阅读 · 0 评论 -
java并发编程-并发容器
1.ConcurrentHashMap 使用hashMap: 引起死循环, CPU 利用率会达到百分之百。 因为hashmap 在多线程下使用的时候, 没有做线程安全的控制, 会使其中的entry链表形成一个环形的数据结构, entry 的next 节点永不为空, 进入死循环 HashTable使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因...翻译 2019-04-21 12:14:52 · 174 阅读 · 0 评论 -
并发编程-线程安全
1. 什么是线程安全 在多线程访问下, 不管哪个线程调用这个类,这个类总能表现出正确的行为 JMM 引发的问题 数据不一致, 缓存不一致 指令的重排序 怎样才能做到线程安全 1. 无状态类(没有成员变量的类) public class A{ public void proc(int a, int b){ } } 2. 让类不可变 public class A{ private fin...翻译 2019-04-17 22:53:38 · 124 阅读 · 0 评论 -
java 并发编程 - 显示锁和CAS
1. 显示锁 Lock lock 接口可以提供一些sychnoized 不具备的一些其他特性 如: 1。 尝试非阻塞去获取锁 2. 可以被终端的获取锁 3. 超时获取锁 lock 接口的核心方法 lock():获取锁, 类似sychnonized 关键字 unlock():释放锁(当退出synchnonized 关键字所包围的代码块的时候, 锁自动释放) tryLock(): 尝试非阻塞的去获取...翻译 2019-04-18 22:42:32 · 157 阅读 · 0 评论 -
java并发编程-线程池
为什么要用线程池 降低资源消耗 提高响应速度 T1: 线程创建的时间 T2:工作任务运行额时间 T3: 线程销毁时间 提高了线程的可管理性 corePoolSize: 核心线程数 maxinumPoolSize:允许最大线程数 keepAliveTime:空闲线程所存活的时间 TimeUnit:keepAliveTime 的时间单位 workQueue: 阻塞队列 threadF...翻译 2019-04-20 19:33:41 · 110 阅读 · 0 评论