-
多线程编程常用的模型查看全部
-
本门课程的要点查看全部
-
1.构造锁对象 2.通过synchronized的同步方法块 把关键代码移入synchronized 调用锁对象的wait方法之后 其他线程都会在锁对象的wait set里等待查看全部
-
互斥 只能有一条线程对临界区进行操作 同步 一个线程运行完之后通知另一个线程运行查看全部
-
两个线程共享同一资源,同一时间只能有一个线程在cpu运行,线程之间的调度通过分时和抢占来完成的查看全部
-
争用条件(Race Condition)查看全部
-
使用退出旗标的方法退出线程查看全部
-
Thread常用方法查看全部
-
为什么不能使用interrupt方法来终止线程:因为在线程调用(),join(),sleep()等阻塞的方法的时候会清除当前线程的interrupted status,当该线程再调用isInterrupted()和interrupted()方法时就会抛出异常。 广为流传的错误停止线程的方法:interrupt() interrupt()--初衷并不是用于停止线程 在调用sleep()或者join()的时候,一旦其他线程调用interrupt(),它将会收到一个异常,这些被阻塞的线程因为某些原因需要被唤醒,比如外部发生了中断而需要响应,这时就采用抛出异常的方式来使其作出响应。总而言之,interrupt()方法并不能正确地停止进程 当前线程值是否被中断,isInterrupted()和interrupted() 当线程正在处于某些方法中,如sleep(),,会出现两种情况: 1.sleep方法受到interrupt异常; 2.interrupt状态被清空查看全部
-
正确停止线程方法:使用退出标志 如本文:volatile boolean keepRunning=true; 这样做的好处是:使得线程有机会使得一个完整的业务步骤被完整地执行,在执行完业务步骤后有充分的时间去做代码的清理工作,使得线程代码在实际中更安全查看全部
-
如何正确地停止java线程 错误方法:stop()方法--最重要的问题是让线程戛然而止,不知道完成了什么,哪些工作还没有做,也没有来得及做清理查看全部
-
join方法在我们需要控制程序结束的地方非常有用查看全部
-
join方法的执行:所有的线程都要等待当前调用join方法线程执行完毕才可执行。查看全部
-
Thread.yield();//让出处理器时间,公平竞争 valatile 保证了线程可以正确地读取其他线程写入的值,如果不写成volatile,由于可见性的问题,当前线程有可能不能读到这个值//可见性JMM(JAVA内存模型)happens-before原则、可见性原则 用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的值查看全部
-
Thread常用方法查看全部
举报
0/150
提交
取消