java如何创建线程锁,java线程里面创建线程

  java如何创建线程锁,java线程里面创建线程

  如何解决写爬虫IP受阻的问题?立即使用。

  用Java线程类来表示线程,所有的线程对象都必须是线程类或其子类的实例。Java可以用三种方式创建线程,如下所示:

  1)继承线程类来创建线程

  2)实现Runnable接口来创建线程。

  3)使用Callable和Future创建线程

  让我们来看看这三种创建线程的方法。

  继承Thread类创建线程步骤如下:

  1] D定义Thread类的子类,重写这个类的run()方法。这个方法的方法体就是线程需要完成的任务。run()方法也称为线程执行器。

  2]创建一个线程子类的实例,即创建一个线程对象。

  3]启动线程,即调用线程的start()方法。

  示例:

  class public my Thread extends Thread {//继承Thread类。

  公共无效运行(){

  //重写run方法

  }

  }

  公共类Main {

  公共静态void main(String[] args){

  新的MyThread()。start();//创建并启动线程

  }

  }实现Runnable接口创建线程步骤如下:

  1]定义Runnable接口的实现类,并重写run()方法。这个run()方法与Thread中的run()方法相同。

  2]创建一个Runnable实现类的实例,用这个实例作为Thread的目标创建Thread对象,这才是真正的Thread对象。

  3]第三部分仍然通过调用thread对象的start()方法来启动线程。

  示例:

  my thread 2实现的公共类Runnable {//实现Runnable接口

  公共无效运行(){

  //重写run方法

  }

  }

  公共类Main {

  公共静态void main(String[] args){

  //创建并启动线程

  myThread 2 myThread=new myThread 2();

  Thread thread=新线程(myThread);

  线程()。start();

  //或者newthread (newmythread2())。start();

  }

  }使用Callable和Future创建线程步骤如下:

  1]创建可调用接口的实现类,实现call()方法,然后创建实现类的实例(从java8开始,可以直接使用Lambda表达式创建可调用对象)。

  2]使用FutureTask类包装Callable对象,封装Callable对象的call()方法的返回值。

  3]使用FutureTask对象作为Thread对象的目标来创建和启动线程(因为FutureTask实现了Runnable接口)

  4]调用FutureTask对象的get()方法,获取子线程执行后的返回值。

  示例:

  公共类Main {

  公共静态void main(String[] args){

  mythread 3 th=new mythread 3();

  //使用Lambda表达式创建可调用对象

  //使用FutureTask类包装可调用对象

  FutureTaskInteger future=新FutureTaskInteger(

  (CallableInteger)()-{

  返回5;

  }

  );

  新线程(任务,“具有返回值的线程”)。start();//本质上,用一个可调用的对象创建并启动线程。

  尝试{

  System.out.println(子线程返回值: future . get());//在子线程完成执行之前,//get()方法将一直阻塞。

  }catch(异常e){

  ex . printstacktrace();

  }

  }

  }更多java知识请关注java基础教程部分。这就是java如何创建线程的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: