摘要:
【线程让步yield()方法】 yield()方法可以让当前正在执行的线程暂停,但它不会阻塞该线程,它只是将该线程从运行状态转入就绪状态。 只是让当前的线程暂停一下,让系统的线程调度器重新调度一次。 很有可能,当某个线程调用了yield()方法暂停之后进入就绪状态,它又马上抢占了CPU的执行权,继续 阅读全文
摘要:
【线程睡眠】 如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用Thread类的静态方法sleep()方法来实现。 sleep()方法有两种重载形式: 1.static void sleep( long millis ):让当前正在执行的线程暂停millis毫秒,并进入阻塞状态 阅读全文
摘要:
【后台线程】 后台线程(Daemon Thread):运行在后台,他的任务是为其它的线程提供服务,又称为"守护线程"。JVM的垃圾回收线程就是典型的后台线程。 [ 特征 ] 如果所有的前台线程都死亡,后台线程会自动死亡。 调用Thread对象的setDaemon(true)方法可以将指定的线程设置成 阅读全文
摘要:
【join线程简述】 join()方法:Thread提供的让一个线程去等待另一个线程完成。当在某个程序执行流中(如main线程)调用其它线程(如t2线程)的join方法(t2.join()),调用线程(main线程)将被阻塞,直到被join()方法加入的join线程(t2.start())执行完成为 阅读全文
摘要:
【线程状态】 在线程的生命周期中,它要经过 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Bolcked)、死亡(Dead)总共5种状态。 尤其在线程启动之后,它不可能一直占着CPU运行,所以CPU需要在多个线程之间相互切换,于是线程的状态也会多次在运行、阻塞之间切换。 【 阅读全文
摘要:
【简述】 为了支持多线程之间的协作,JDK提供了两个重要的线程方法:通知notify()、等待wait()。 任何对象都可以调用这两个方法,因为他们在Object类中。 【wait方法】 当一个对象调用了wait方法之后,当前线程就会在这个对象上等待。比如,线程A中,调用了obj.wait()方法, 阅读全文