为了账号安全,请及时绑定邮箱和手机立即绑定
  • 线程初体验:Thread类,,与run()方法
    查看全部
  • EnergySystem 设置了能量系统,能量盒子, 能量转移方法,获得能量盒子数量方法。 EnergyTransferTask 设置了能量转移线程,能接受传来的能量系统,调用能量转移方法操作能量。 EnergySystemTest 初始化能量系统,创建能量转移线程,并在创建能量转移线程的时候将能量系统传入到线程中。 创建了100个线程。 争用条件(Race Condition):当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件。 线程之间的调度是通过分时和抢占来完成的。 当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏(corrupted),这种现象称为争用条件 原因是,每个线程在操作数据时,会先将数据初值读【取到自己获得的内存中】,然后在内存中进行运算后,重新赋值到数据。
    查看全部
  • synchronized关键字的用法到底是什么样的:?
    查看全部
  • 扩展建议: 书籍: Java核心技术 (Core Java Volume I--Fundamentals) Java Concurrency in practice Java Memory Mode JMM描述了java线程如何通过内存进行交互 happens-before synchronized,volatile & final Lock 和 Condition对象 java锁机制和等待条件的高层实现 java.util.concurrent.locks 线程的安全性: 原子性和可见性 java.util.concurrent.atomic synchronized & volatile DeadLocks 多线程常用的交互模型: Producer-Consumer模型 Read-Write Lock模型 Future模型 Worker Thread 模型 java5引入的并发编程工具: java.util.concurrent 线程池ExecutorService Callable & Future BlockingQueue
    查看全部
    0 采集 收起 来源:总结及展望

    2018-03-22

  • 线程的interrupt()方法是改变此线程的阻塞状态,此时thread.interrupted() 为true,如果线程此时调用了sleep()方法或者wait()方法时或其他阻塞方法时,那么thread.interrupted() 的值会被清空。所以在结束线程时interrupt()方法不是最佳的方法
    查看全部
  • 同步:wait(),notify(),notifyall(),都是属于object类,并不是thread类 notify()唤醒wait set中的一条线程,而notifyall()唤醒所有线程 同步是两个线程之间的一种交互的操作(一个线程发出消息另外一个线程响应)。 同步的实现:wait();notify();notifyAll();这三个方法都是Object对象的成员函数。 线程的交互:互斥 Wait Set是线程的休息室 notify()唤醒wait set中的一条线程(随机调用,等待集合中都有几乎),而notifyall()唤醒所有线程
    查看全部
  • 《code java》 《java concurrency in practice》
    查看全部
    0 采集 收起 来源:总结及展望

    2015-07-16

  • java5引入的并发编程工具
    查看全部
    0 采集 收起 来源:总结及展望

    2015-07-16

  • 了解交互模型
    查看全部
    0 采集 收起 来源:总结及展望

    2015-07-16

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

    2015-07-16

  • lock和condition、机制
    查看全部
    0 采集 收起 来源:总结及展望

    2015-07-16

  • 如何扩展Java并发的知识
    查看全部
    0 采集 收起 来源:总结及展望

    2015-07-16

  • 线程的交互:互斥与同步 互斥:在同一时间只能有一条线程对关键数据或临界区进行操作 同步:线程之间的一种通信机制 一条线程做了一件事情,然后用某种方式去告诉其它线程:"我做完了" synchronized关键字实现互斥行为,既可以出现在方法体之上也可以出现在方法体内,以一种块的形式出现。 然后通过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对象上等待的线程
    查看全部
  • 多个线程同时尝试访问一个资源(内存区域),导致数据被破坏,这种现象叫做条件争用。
    查看全部
  • interrupt()方法可以使中断方法发生变化,初衷不是用来停止线程 如何正确停止线程 一、错误一:stop()方法 1、not stop:stop()方法会使线程戛然而止 2、使程序突然中止,无法完成完整的业务步骤,也无法进行清理工作 二、错误二:interrupt()方法 1、interrupt()方法只能设置interrupt标志位(且在线程阻塞情况下,标志位会被清除,更无法设置中断标志位),无法停止线程。 2.线程a因为join方法或者sleep方法的时候一单其他线程调用interrupt方法则线程a会出现InterruptedException异常,因为外部发生中断,这些被interrupt阻塞的线程需要被唤醒,抛出异常的方式来响应。 三、正确方法:设置退出标志 1、使用退出标志位来停止while循环 2、完成最后一次业务后跳出while循环后,之后进行一些清理工作
    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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