java-线程总结

      这几天对线程进行了一定的学习和了解,下面对线程的一些基本知识进行一下总结

   一.线程的创建

    1. 继承Thread类

   

public Class MyThread extendws Thread{
  public void run(){
     //线程体
    }
}

   2.实现Runnable接口

public MyThread implements Runnable{
   public void run(){
     //线程体
   }
}

   3.创建内部类线程

 new Thread(){
   public void run(){
     //线程体
   }
}.start()

 二.线程生命周期

     线程生命周期的五种状态:创建线程--就绪--运行--阻塞--消亡

     具体转换如下图:

 

扫描二维码关注公众号,回复: 1230239 查看本文章

三.线程同步

   线程同步是为了防止多线程对同以数据访问时对数据造成破坏

   举例说明:

    假如我的银行账户里有5000元钱。我有存折和银行卡两种取钱工具。在同一时候两人分别拿着这两种工具去银行取同一账户的钱。如果不实行线程同步,则可能取出10000元。线程同步就是当银行卡在取钱时,存折就不能取,存折取时银行卡就不能取。

  实现线程同步常用的方法是加同步锁:

   synochored(){//同步块}

   synochored(obj){//代码}  

 四.线程池

   我们知道在计算机中往往是很多个线程在运行,然而每创建一个线程都要消耗一定资源的,如果我们每执行一个任务就创建一线程的话必然会占用很多内存,当达到一定限度时我们的CUP就会崩溃的。因此我们会用到线程池。

   线程池相当于一个存放线程的容器,当线程池里存在空闲线程时,启动线程执行任务。否则就等待。这样就可以用有限的线程执行更多的任务,大大减少了资源开销。

五.线程常用方法

   CurrenThread()  //获取当前线程对象名

   sleep(long n)  //线程休眠n毫秒
   getName()    //获取线程名

   inturrept()  //中断线程

   destroy()  //终止线程  (一般run()方法执行完后线程消亡)

 

猜你喜欢

转载自985359995.iteye.com/blog/1943061