美文网首页java多线程编程
java多线程编程-上下文切换

java多线程编程-上下文切换

作者: 李2牛 | 来源:发表于2018-04-19 14:56 被阅读0次

上下文切换(Context Switch)是多线程共享同一个处理器的产物。

线程活性故障

  1. 死锁(Deadlock):鹬蚌相争的场景
  2. 锁死:绝情花毒世界上只有一枚解药可以解除,然后这枚解药没了。中毒的人永远无法解毒。
  3. 活锁:小猫试图咬自己的尾巴但是它总是追着自己的尾巴咬,始终无法咬到。活锁的外在表现是可能处于 RUNNABLE 状态,但是线程的任务并没有实际的进展,一直在做无用功。
  4. 饥饿:某些线程始终无法获取资源,无法被服务。

资源争用与调度

由于资源稀缺或者资源的本身特性(打印机一次只能打印一页纸),线程之间往往需要共享资源。一次只能被一个线程占用的资源称为排他性(Exclusive)资源,一般包括处理器,文件,数据库连接等。

一个资源占用一个排他性资源进行访问的而未释放其对资源所有权时,其他线程试图访问该资源的现象就被称为资源争用(Resource Contention)

同一时间内处于运行状态的线程数量越多,并发的程度就越高,简称高并发

注意: 高并发不意味着高争用。

比如:传统的收费站多车道人工收费可能导致高争用,但是现在的ETC(Electronic Toll Collection)通道可以保证高并发下快速通过降低争用。

相关文章

  • Java并发编程-并发编程带来的问题

    并发编程带来的问题 上下文切换 多线程不一定快 如何减少上下文切换 减少上下文切换的方法有无锁编程、CAS算法、使...

  • Java并发编程相关

    参考:方腾飞 魏鹏 程晓明 《Java并发编程的艺术》 1. 上下文切换 CPU分时间片处理多线程任务,切换执行线...

  • Java并发编程的挑战

    ##Java并发编程的挑战 如果希望通过多线程来让任务执行的更快,将会面临上下文切换频繁,死锁,资源限制(硬件和软...

  • Java并发编程

    一、Java并发编程的挑战 1.1 如何减少上下文切换? 无锁并发编程: CAS算法:Java的Atomic包使用...

  • java并发编程艺术笔记

    1. 并发编程遇到的挑战 多线程 减少上下文切换的方式: 无锁并发编程:多线程竞争锁的时候会引起上下文的切换,在多...

  • 2018-10-16

    Java编程思想 1~12 java多线程编程核心技术 23~57

  • java多线程编程-上下文切换

    上下文切换(Context Switch)是多线程共享同一个处理器的产物。 线程活性故障 死锁(Deadlock)...

  • 并发编程01-对于并发的认知

    多线程和并发的概念 上下文切换 如何减少上下文切换无锁并发编程CAS算法使用最少线程协程 死锁避免死锁的几个常见的...

  • Java多线程学习:Future、Callable

    Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四) 最近在写清结算文件...

  • 史上最全Java多线程面试题及答案

    多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域。所以,学好多线程并发编程对Java程序员来来说...

网友评论

    本文标题:java多线程编程-上下文切换

    本文链接:https://www.haomeiwen.com/subject/kcrwkftx.html