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.当一个线程修改了一个共享变量的值,其它线程是否可以立即发现。

原创粉丝点击