为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
深入浅出Java多线程_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

深入浅出Java多线程

Arthur JAVA开发工程师
难度入门
时长 4小时 0分
  • @Java线程——线程交互——扩展建议 1、Java Memory Mode:JMM描述了java线程如何通过内存进行交互,了解happens-before,synchronized,voliatile & final 2、Locks % Condition:锁机制和等待条件的高层实现 java.util,concurrent.locks 3、线程安全性:原子性与可见性,死锁等 4、多线程常用的交互模型 · Producer-Consumer模型 · Read-Write Lock模型 · Future模型 · Worker Thread模型 5、Java5中并发编程工具:java.util.concurrent 线程池ExcutorService Callable&Future BlockingQueue 6、推荐书本:CoreJava & JavaConcurrency In Practice
    查看全部
    0 采集 收起 来源:总结及展望

    2018-03-22

  • java参考图书
    查看全部
    0 采集 收起 来源:总结及展望

    2016-08-19

  • 多线程编程常用的交互模型
    查看全部
    0 采集 收起 来源:总结及展望

    2016-08-19

  • 线程安全性
    查看全部
    0 采集 收起 来源:总结及展望

    2016-08-19

  • Locks&Condition
    查看全部
    0 采集 收起 来源:总结及展望

    2018-03-22

  • 扩展知识
    查看全部
    0 采集 收起 来源:总结及展望

    2016-08-19

  • 互斥:关键数据在一个时间被一个线程使用。 同步实现:object 方法wait()/notify()/notifyall(); wait set 类似于线程的休息室,访问共享数据的代码称为critical section。一个线程获取锁,然后进入临界区 ,发现某些条件不满足,然后调用锁对象上的wait方法,然后线程释放掉锁资源,进入锁对象上的wait set。其他线程可以获取所资源,然后执行,完了以后调用notify,通知锁对象上的等待线程。
    查看全部
  • 用条件:多个线程同时访问同一数据(内存区域)时,每个线程都尝试操作该数据,导致数据被破坏 1:线程的特点,共享同一进程的资源,同一时刻只能有一个线程占用CPU<br> 2:由于线程有如上的特点,所以,就会存在多个线程争抢资源的现象,就会存在争用条件这种现象<br> 3:为了让线程能够正确的运行,不破坏共享的数据,所以,就产生了同步和互斥的两种线程运行的机制<br> 4:线程的互斥指:线程的运行隔离开来,互不影响,使用synchronized关键字实现互斥行为,此关键字即可以出现在方法体之上也可以出现在方法体内,以一种块的形式出现,在此代码块中有线程的等待和唤醒动作,用于支持线程的同步控制<br> 5:线程的同步指:线程的运行有相互的通信控制,运行完一个在正确的运行另一个 通过lockObject的wait方法(注意:wait的线程被存放在wait set 中)和notifyAll方法实现同步。 步骤: 1.互斥:同一时间,只能有一个线程访问数据 2.同步:通信机制;一个线程完成,以某种方式通知其他线程 3.锁的概念:private final Object lockObj = new Object(); 4.互斥实现方式:synchronized关键字 synchronized(lockObj){---执行代码----}加锁操作 lockObj.wait();线程等待状态,以避免线程持续申请锁,不去竞争cpu资源 lockObj.notifyAll();唤醒所有lockObj对象上等待的线程
    查看全部
  • @Java线程——线程交互——互斥与同步 一、互斥 1、同一时间,只能有一个线程访问数据 二、同步 1、是一种通信机制,一个线程操作完成后,以某种方式通知其他线程 三、实现方法 1、【互斥】构建锁对象(Object objLock),通过synchronized(lockObj){ 互斥的代码块 } 2、加锁操作会开销系统资源,降低效率。 3、在某线程的条件不满足任务时,使用lockObj.wait()对线程进行阻挡,防止其继续竞争CPU资源,滞留在wait set中,等待唤醒,【唤醒后继续完成业务】 4、【同步】在某一代码正确执行完业务后,通过lockObj.notifyAll()唤醒所有在lockObj对象等待的线程
    查看全部
  • Java线程——线程交互——争用条件 1、当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件 2、原因是,每个线程在操作数据时,会先将数据初值读【取到自己获得的内存中】,然后在内存中进行运算后,重新赋值到数据。 3、争用条件:线程1在还【未重新将值赋回去时】,线程1阻塞,线程2开始访问该数据,然后进行了修改,之后被阻塞的线程1再获得资源,而将之前计算的值覆盖掉线程2所修改的值,就出现了数据丢失情况
    查看全部
  • 争用条件:当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件
    查看全部
  • THread 方法
    查看全部
  • 视屏中我们花了大量的时间在讲解API文档的内容,答案也来自于那里。sleep()让线程进入了等待的状态,此时调用interrupt()方法,interrupt状态不会改变,于是后续希望停掉线程的企图就落空了,线程还会精力充沛的干活。
    查看全部
  • 用Thread.sleep(1000)而不是thread.sleep(1000)的原因:静态方法调用时用类去调用而不是实体对象去调用
    查看全部
  • 如何停止线程:使用退出标志
    查看全部

举报

0/150
提交
取消
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、Java 中如何使用线程 2、什么是争用条件 3、线程如何交互
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!