Java多线程 简记

 

1、实现多线程方法

继承 Thread类或者 实现 Runnable 接口

2、Thread  和 Runnable 区别

实现Runnable接口比继承Thread类所具有的优势:

  1):适合多个相同的程序代码的线程去处理同一个资源

  2):可以避免java中的单继承的限制

  3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立

  4):线程池只能放入实现Runable或callable类线程,不能直接放入继承Thread的类

 

3、线程状态转换

 

4、线程调度

1、调整线程优先级:Java线程有优先级,优先级高的线程会获得较多的运行机会。
 
Java线程的优先级用整数表示,取值范围是1~10,Thread类有以下三个静态常量:
static int MAX_PRIORITY
          线程可以具有的最高优先级,取值为10。
static int MIN_PRIORITY
          线程可以具有的最低优先级,取值为1。
static int NORM_PRIORITY
          分配给线程的默认优先级,取值为5。
 
Thread类的setPriority()和getPriority()方法分别用来设置和获取线程的优先级。
 
 
5、线程常用函数
 
sleep(): 强迫一个线程睡眠N毫秒。 
  isAlive(): 判断一个线程是否存活。 
  join(): 等待线程终止。 
  activeCount(): 程序中活跃的线程数。 
  enumerate(): 枚举程序中的线程。 
    currentThread(): 得到当前线程。 
  isDaemon(): 一个线程是否为守护线程。 
  setDaemon(): 设置一个线程为守护线程。(用户线程和守护线程的区别在于,是否等待主线程依赖于主线程结束而结束) 
  setName(): 为线程设置一个名称。 
  wait(): 强迫一个线程等待。 
  notify(): 通知一个线程继续运行。 
  setPriority(): 设置一个线程的优先级。
 
6、线程同步
  synchronized关键字

 

posted @ 2018-03-08 21:14  期待Na那未来  阅读(141)  评论(0编辑  收藏  举报