多线程(一)--线程的运行

一:线程与进程
1.  进程 :是一个正在执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元;
2.线程 : 进程的一个独立控制单元,进程不共享数据,线程可以共享数据
3多线程:使用并发原理,是多个线程呈现出共同运行的情况
 
二:线程的生命周期
1.新建:从线程被建立到使用start()之间的过程
2.就绪:线程通过start方法之后进入就绪状态,等待JVM进行资源调度
3.运行:就绪状态的线程得到资源后就可以进行run方法,运行状态的线程可以变为就绪,死亡,阻塞三种状态
4.阻塞/等待:运行中的线程使用sleep方法后,会释放所有资源,并且进入阻塞状态等待资源的再次分配。
5.终止/死亡:当线程完成时,或者触发其他终止条件时,线程会终止,并且释放所有资源
 
三:线程的创建
1.继承Thread类实现
2.通过Runable接口实现
 
四、Thread实现
   1.首先Thread的实现也是通过接入Runnable接口
   2.实现方法,方法继承Thread
   3.Thread自带的方法,start()方法,sleep()方法
五、Runnale(就绪)实现
    1.实现方法,接入Runnable接口
     2.sleep() start()等方法需要通过强转为Thread方法才可以使用,不过sleep静态方法,可以直接          
         Thread.sleep()直接调用。
     3.Runnable接口本体只有一个抽象run方法
 
六、常见线程方法
     1.sleep():与object中的wait方法,使线程进入阻塞状态(即在指定时间内不会进入就绪状态)
        阻塞结束后,线程进入就绪状态
      2.yield():线程释放当前资源,进入就绪状态,与其他就绪线程一起抢夺资源。作用一般是给同
         等优先级的线程共同执行的资格。与sleep不同,线程释放资源后,会马上进入就绪状态争夺
         cpu资源。
      3.join():调用某线程,且等待该线程执行完毕后才可以进行之前线程。
      4.setProirity():设置线程的优先级
      5:getPrority():获取线程的优先级
      6:interruput():发出中断信号,如果存在死锁现象的线程收到信号后,会抛出异常,中断当前线程
      7:start():

猜你喜欢

转载自www.cnblogs.com/qqwhsj/p/10641734.html