线程总结

   进程独享系统资源,线程共享进程资源
   没有进程就没有线程,没有线程也就没有线程

   线程分为,用户线程与精灵线程
   精灵线程:在一个用户线程没有调用Start方法之前,调用setDaemon,就把一个用户

   线程转换成精灵线程
   用户线程可以转换成精灵线程,而精灵线程不可以转换成用户线程
   精灵线程消耗系统的资源比用户线程低
   精灵线程没有生命周期

   线程的生命周期:新建态,就绪态,运行态,挂起态,终止态
  
   创建线程的两种方式:第一是实现runnable接口
                       第二是继承thread类
                               |
                       都要重写run()
  
   实现runnable接口比较继承thread灵活,因为Java实现单一继承,thread继承了一个

   类就不能在继承了,而runnable 接口可以实现多继承

   sleep与writ的区别?
   sleep是不释放资源的等待
   writ是释放资源的等待

   isInterrupted():判断线程是否已经中断
   interrupt():中断线程
   interrupted():恢复

   join():让线程执行完,让另外一个线程等待

   死锁:
   当多条线程同时运行时,在一定时间类,所有线程都已经处于挂起状态,都在等待彼
   此的唤醒,就会导致死锁

   同步:
   同步是在多线程中,只允许一个线程执行
   同步分为两种:①同步方法 ②同步块
 
   临界资源:
   只允许一个线程执行(两个线程同时执行,为了保持线程唯一性,使用同步)

你可能感兴趣的:(多线程,thread)