欢迎访问wabc.cc — 源码交易 · 软件定制 · 建站服务一站式平台
全部分类
首页 - 首页 - 解决方案 - 推荐文章 - Java技术之多线程常见的7种方法

Java技术之多线程常见的7种方法

分类:推荐文章 · 发布:2025-12-21 · 浏览:1

     今天跟大家分享Java的学习笔记:Java技术需要我们学习的有很多技术,今天千锋重庆小编跟大家分享Java技术之多线程常见的7种方法

1,继承Thread

  主要掌握:线程的初始化,启动,中断的正确处理方式(interrupted)

  public class Demo1 {

  public static void main(String[] args) {

  MyThread thread = new MyThread();

  thread.start();

  }

  }

  class MyThread extends Thread{

  @Override

  public void run() {

  System.out.println(Thread.currentThread().getName()+":running...");

  }

  }

  2,实现Runnable

  源码解析,为什么会调用Runnable的run方法

  public class Demo2 {

  public static void main(String[] args) {

  MyRunnable task = new MyRunnable();

  new Thread(task).start();

  }

  }

  class MyRunnable implements Runnable{

  @Override

  public void run() {

  System.out.println(Thread.currentThread().getName()+":running");

  }

  }

  3,匿名内部类的方式(线程只创建一次的情况)

  有两种方式

  public class Demo3 {

  public static void main(String[] args) {

  new Thread(){

  public void run() {

  System.out.println("通过匿名内部类的方式来创建线程");

  };

  }.start();

  new Thread(new Runnable() {

  @Override

  public void run() {

  System.out.println("通过实现一个匿名的Runnable子类来实现");

  }

  }).start();

  }

  }

  给大家留下一个思考题,如果说需要两种都兼顾,你们执行的时候会采用哪种?为什么?

  new Thread(new Runnable() {

  @Override

  public void run() {

  System.out.println("你猜是运行这一段?");

  }

  }){

  public void run() {

  System.out.println("还是这一段?");

  };

  }.start();

  4,带返回值的线程,实现Callable接口

  实现call方法

  FutureTask对任务进行封装

1.png

  5,使用定时器的方式

  Timer,TimerTask,执行定时任务

  6,使用线程池的方式

  通过Executors创建不同的线程池进行任务执行

  7,Lambda表达式(函数式编程)JDK1.8提供的新特

  lambda表达式代码简洁,实现方便,对并发支持好,性能高

  我们通过打印一个集合的数据来观察运行结果,发现出来的顺序是不一致的,说明是多线程方式

2.png  

上一篇:名麦火锅加盟怎么样?加盟名麦火锅总部的支持有哪些?
下一篇:怎么加工跟愈道一样的舒眠笔 舒眠笔厂家怎么联系

相关文章

源码分类

热门源码

最新资讯

联系我们