线程(四)额外的线程能力

  • 给出线程组的定义
  • 你为什么使用线程组
  • 你为什么应该避免使用线程组?
  • 你为什么应该认识线程组?
  • 判断对错:如何线程调用get()方法时,调用线程的存储槽里没有值,改方法就会去调用initialValue()。
  • 如何从父线程传递一个值到子线程中?
  • 指出组成timer框架的全部类。
  • 判断对错:Timer()会建立一个新的定时器,其任务执行线程会以守护线程的方式运行
  • 给出固定延迟的执行任务的定义
  • 你会调用那些方法来调度一个固定延迟的执行任务
  • 给出固定速度率的执行任务的定义
  • Timer的cancle()和TimerTask的cancle()方法有何区别?
  • 建立一个BackAndForth应用程序,使用Timer和TimerTask 去反复地移动一个星号:向前20步,而后向右20步。星号经过System.out.print()输出。

  

  小结框架

  类ThreadGroup 描述了一个线程组,它存储了一组线程。线程组经过把方法应用到其中的全部线程而简化了多条线程的管理工做。因为多数有用的方法因竞态条件遭到废弃,你不该该再使用线程组。spa

    类ThreadLocal 描述了一个线程局部变量,它可让你把每条线程的数据(如用户ID)和线程关联。线程局部变量针对每一个访问该变量的线程都提供了单独的存储槽。你能够把它想象成具备多个槽的变量,而后每条线程均可以在这个变量中存储不一样的值。每条线程只能看到本身的值而不会意识到其余的线程在这个变量中也有属于本身的值。存储在线程局部变量中的值都不是相关的。父线程能够借助类InheritableThreadLocal 把值传递到子线程中。
线程

  一般状况下,安排单次的执行任务或者规律性的重复任务是有必要的。Java 1.3引入了定时框架,用于在定时器上下文中可控制的控制线程的执行,其由类Timer和TimerTask 构成。get

相关文章
相关标签/搜索