为了账号安全,请及时绑定邮箱和手机立即绑定
  • 一个线程在阻塞状态下(例如sleep),此时interrupt的话,将会产生两个结果: 1、进程的interrupt状态被清除(cleard)而非被设置(set)。 2、sleep方法会抛出异常。
    查看全部
  • interrupt方法的初衷是中断线程而不是停止线程
    查看全部
  • 线程的交互:互斥与同步 互斥:在同一时间只能有一条线程对关键数据或临界区进行操作 同步:线程之间的一种通信机制 一条线程做了一件事情,然后用某种方式去告诉其它线程:"我做完了" 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对象上等待的线程
    查看全部
  • 进击的小x join方法可中断其它线程的执行,等待调用join方法的线程结束,即使是主线程main也会被中断 join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。
    查看全部
  • 扩展建议等等等
    查看全部
    0 采集 收起 来源:总结及展望

    2015-07-28

  • 互斥实现方式:synchronized关键字 实现锁的功能:private final Object lockObj = new Object(); synchronized(lockObj){---执行代码----}加锁操作 synchronized关键字实现互斥行为,既可以出现在方法体之上也可以出现在方法体内,以一种块的形式出现。然后通过lockObject的wait方法(注意:wait的线程被存放在wait set 中)和notifyAll方法实现同步
    查看全部
  • 争用条件 原因: 线程1在还【未重新将值赋回去时】,线程1阻塞,线程2开始访问该数据,然后进行了修改,之后被阻塞的线程1再获得资源,而将之前计算的值覆盖掉线程2所修改的值,就出现了数据丢失情况
    查看全部
  • 广为流传的错误停止线程的方法:interrupt() interrupt()--初衷并不是用于停止线程 在调用sleep()或者join()的时候,一旦其他线程调用interrupt(),它将会收到一个异常,这些被阻塞的线程因为某些原因需要被唤醒,比如外部发生了中断而需要响应,这时就采用抛出异常的方式来使其作出响应。总而言之,interrupt()方法并不能正确地停止进程
    查看全部
  • 在线程中,停止线程的方法:设置旗标 使用volatile 定义boolean running=true,通过设置标志变量running,来结束线程。 如本文:volatile boolean keepRunning=true;
    查看全部
  • stop()方法本身是Java1.0版本提供的一个停止线程的方式。 官方标注为:Deprecated。所以对我们来说不是一个正确的停止线程的方式。 所以不能使用stop()方法来停止线程。
    查看全部
  • join方法可中断其它线程的执行,等待调用join方法的线程结束,即使是主线程main也会被中断 join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。
    查看全部
  • volatile关键字:保证了线程可以正确的读取其他线程的值,被该关键字修饰的变量a没有拷贝,保证了每一个线程对于该成员变量的值的改变都能存储到主存中,即每个线程的这个变量a的值都是一致的。因此它的性能也比synchronized要差一些。 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
    查看全部
  • 要读的书
    查看全部
    0 采集 收起 来源:总结及展望

    2015-07-28

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

    2015-07-28

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

    2015-07-28

举报

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

微信扫码,参与3人拼团

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

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