Thread必须知道的几个概念
来源:互联网 发布:apk优化 编辑:程序博客网 时间:2024/05/22 02:01
同步(Synchronous)和异步(Asynchronous)
1.同步:同步一经调用,调用者必须等到方法返回后才能继续后续行为。
2.异步:异步被调用后,方法就会立即返回,可以立即进行后续操作,而调用的方法会重新开启一个线程在后台运行,当方法需要返 回结果时才会通知调用者。
并发(Concurrency)和并行(Parallelism)
1.并行:并行是真实的同时执行的。
2.并发:并发是串行的,但由于系统切换比较快,造成并行的错觉。高并发如果特定情况下如果没有加上锁,会产生此线程未结束当前任务被抢夺cpu资源,造成错误。
阻塞(Blocking)和非阻塞(Non-Blocking)
1.阻塞:资源被占用,导致当前线程等待挂起。
2.非阻塞:与阻塞意思相反,线程互相之间不妨碍,每个线程都尝试不断向前执行。
死锁(DeThread必须知道的几个概念adlock)、饥饿(Starvation)和活锁(Livelock)
1.死锁:死锁是线程互相等待对方释放资源。导致线程互相等待。
2.饥饿锁:线程因为种种原因无法获得需要的资源,导致一直无法执行。
3.活锁:因为线程互相谦让导致互相等待。
原子性
1.一个操作不可以中断。
可见性
1.当一个线程修改了一个共享变量的值,其它线程是否可以立即发现。
阅读全文
0 0
- Thread必须知道的几个概念
- 你必须知道的几个救命常识
- 做网络必须知道的几个定律
- 学习java必须知道的几个东西
- 几个学习Hadoop必须知道的资料
- 【分析必须知道的几个电脑硬件常识】
- spark必须知道的几个观点
- 软件工程师必须知道的10个概念
- 软件工程师必须知道的10个概念
- 20个必须知道的SEO概念
- Android新手必须知道的概念
- 关于react需要知道的几个概念
- 写JAVA必须知道的几个关于java的特征
- 写JAVA必须知道的几个关于java的特征
- 你必须知道的C#的25个基础概念
- 必须知道的C#的25个基础概念
- 你必须知道的C#的25个基础概念
- 你必须知道的C#的25个基础概念
- java String[] args理解
- zipkin+elasticsearch全链路跟踪(springcloud)
- jenkins+selenium grid实现分布式自动化测试
- 【功能笔记】Ubuntu查看系统资源占用(内存,cpu和进程) {转载}
- php get url
- Thread必须知道的几个概念
- Combinatorics——HDUOJ 1294
- 用geotools自己写WMS服务
- CSS中块级元素(block element)和行内元素/内联元素(inline element)
- ArrayList中toArray(T[] a)方法分析
- BMH online judge刷题记——书的复制(二分)
- Leetcode刷题记
- linux内核之问-0.11版本-内核加载-1
- C语言数据结构链栈实现个位数计算式(数据结构第二次实验)