4000857126

上海浦东新区牵引力教育

浦东新区java培训机构解析多线程常见的7种方法

来源:上海浦东新区牵引力教育 发布时间:2018/4/9 15:41:57

  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对任务进行封装

浦东新区java培训机构解析多线程常见的7种方法

  5,使用定时器的方式

  Timer,TimerTask,执行定时任务

  6,使用线程池的方式

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

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

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

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

浦东新区java培训机构解析多线程常见的7种方法

  牵引力教育java程序员培训课程的授课模式采用全程面授,讲师成本虽高,但是效果却是显著的,和学员面对面沟通,了解到学员在学习过程中遇到的问题,动态地调整授课方式。及时有效地帮助学员解决疑难问题,提高学员的学习积极性。牵引力教育为基础差的学员提供全面的基础学习资料,让每一个热爱编程的学员可以掌握扎实的基础。

  上海浦东新区牵引力教育http://pdqyljy.soxsok.com/

  上海浦东新区牵引力教育(手机端):http://m.soxsok.com/pdqyljy/

领取试听课
每天限量名额,先到先得
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
  • 详情请进入 上海浦东新区牵引力教...

关于我们 | 招生信息 | 新闻中心 | 学校动态

版权所有:搜学搜课(www.soxsok.com)