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

深入浅出Java多线程

Arthur JAVA开发工程师
难度入门
时长 4小时 0分
  • stop方法使得线程戛然而止,完成了什么工作,哪些工作还没有做,都不知道,且清理工作也没有做,所以不是正确的停止线程方法 正确的停止线程方法是,在线程执行中设置状态标识,通过控制标识来控制线程正常完整的执行结束线程 volatile是保证所有子线程里的变量都能同步到主内存里变量的值 不要用stop()方法结束线程
    查看全部
  • Thread中start()方法,join()方法,sleep()方法,volatite作用 Java Thread中,start()方法,等其他代码(Thread.join()和Thread.sleep()除外)执行完后再执行它。 Java Thread中, join()方法主要是让调用该方法的thread完成run方法里面的东西后, 再执行join()方法后面的代码。 Java Thread中, sleep()方法主要是让调用该方法的thread完成run方法里面的东西后且等待休眠的时候结束(唤醒), 再执行sleep()方法后面的代码。 一. volatite 简述 Java 语言提供了一种稍弱的同步机制,即 volatile 变量.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新. 当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的. 二. volatite 线程安全? volatile 变量对所有线程是立即可见的,对 volatile 变量所有的写操作都能立即反应到 其他线程之中,换句话说:volatile 变量在各个线程中是一致的,所以基于 volatile 变量的运算是线程安全的。这句话论据貌似没有错,论点确实错的.
    查看全部
  • join方法可中断其它线程的执行,等待调用join方法的线程结束,即使是主线程main也会被中断 join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。
    查看全部
  • 在互斥程序块结尾,唤醒所有在lockObj对象上等待的线程
    查看全部
  • if(energyBoxs[from] < amount)不满足时
    查看全部
  • synchronized(lockObj)//互斥
    查看全部
  • 最后一条,,main方法可以调用非静态方法不?不能一概而论。事实上java中有好多的机制存在,而种种机制又存在优先级,,此成立如果遇到更高优先级的机制会被覆盖!!java毕竟是由c语言延伸而来。so!在java源代码中,亦或是原理上还有很多很多不为常人所知的规则!!你可以找到很多java语言的未解之谜的,因此这才是这门语言的牛X之处。像java这样功能越是强大,其中的复杂程度越高!纯粹是对这门语言的褒义!!java之强大你我都懂
    查看全部
  • 1.加入join是为了让舞台线程最后停止,如果不加有可能舞台线程结束,军队线程还未停止,就好比导演喊停,演员还在演!可以在join后面加入测试语句System.out.println("舞台结束!");,然后去掉或者保留join观察效果。 2.volatile 关键字 保证了线程可以正确地读取其他线程写入的值,如果不写成volatile,由于可见性的问题,当前线程有可能不能读到这个值//可见性JMM(JAVA内存模型)happens-before原则、可见性原则 用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的值 3.Thread.yield();//让出处理器时间,公平竞争
    查看全部
  • java5引入的并发工具。
    查看全部
    0 采集 收起 来源:总结及展望

    2016-07-30

  • 多线程交互模型扩展知识点。
    查看全部
    0 采集 收起 来源:总结及展望

    2016-07-30

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

    2016-07-30

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

    2018-03-22

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

    2016-07-30

  • 线程的同步。
    查看全部
  • 争用条件 1、当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted) 2、原因:每个线程在操作数据时,会先将数据初值读【取到自己获得的内存中】,然后在内存中进行运算后,重新赋值到数据。 3、争用条件:线程1在还【未重新将值赋回去时】,线程1阻塞,线程2开始访问该数据,然后进行了修改,之后被阻塞的线程1再获得资源,而将之前计算的值覆盖掉线程2所修改的值,就出现了数据丢失情况
    查看全部

举报

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

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