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()

 二.线程生命周期

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

     具体转换如下图:

 

三.线程同步

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

   举例说明:

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

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

   synochored(){//同步块}

   synochored(obj){//代码}  

 四.线程池

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

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

五.线程常用方法

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

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

   inturrept()  //中断线程

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java线程中,线程池是一种管理和复用线程的机制。它可以提高线程的利用率和性能。在Java中,可以使用Executor框架来创建和管理线程池。引用[1]中的代码演示了如何使用ExecutorService和Executors来创建一个固定长度的线程池,并执行多个任务。在这个例子中,线程池的长度为2,通过execute方法提交了三个任务,前两个任务会被两个空闲线程执行,第三个任务会等待线程池中有空闲线程后再执行。 另一种创建线程的方式是继承Thread类,引用[2]中的代码演示了如何通过继承Thread类来创建线程。在这个例子中,创建了一个MyThread类,重写了run方法,在run方法中定义了线程要执行的任务。通过调用start方法来启动线程。 在多线程编程中,有时候需要设置守护线程。守护线程是一种特殊的线程,当所有的非守护线程都结束时,守护线程会自动退出。引用[3]中的代码演示了如何设置守护线程。在这个例子中,通过调用setDaemon方法将线程设置为守护线程总结起来,线程池是一种管理和复用线程的机制,可以提高线程的利用率和性能。在Java中,可以使用Executor框架来创建和管理线程池。另外,还可以通过继承Thread类或实现Runnable接口来创建线程,并通过调用start方法来启动线程。在多线程编程中,有时候需要设置守护线程,守护线程会在所有的非守护线程结束时自动退出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值