前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java(多线程①)

Java(多线程①)

作者头像
全栈开发日记
发布2022-05-12 20:26:08
4300
发布2022-05-12 20:26:08
举报
文章被收录于专栏:全栈开发日记
  • 进程:进程是指正在运行的程序;
  • 线程:线程就是进程中的一个执行单元,负责当前进程中程序的执行;
  • 单线程:从main方法入口到结束,一条路走到底;
  • 分时调度:所有的线程轮流使用CPU的使用权,平均分配;
  • 抢占式调度:优先让优先级高的线程使用CUP;

学习时的草图

创建线程的方式①(继承Thread类

  1. 定义一个类继承Thread;
  2. 重写run()方法;
  3. 创建子类对象,就是创建线程对象;
  4. 调用start()方法,开启线程并让线程执行,同时还会告诉JVM去调用run()方法;

继承Thread类

代码语言:javascript
复制
public class ThreadDemo extends Thread{
    @Override
    public void run(){
      //执行体
    }
}

测试类

代码语言:javascript
复制
public class Test {
    public static void main(String[] args) {
        ThreadDemo th=new ThreadDemo();
        th.start();
    }
}

每个线程,都有自己的名字

运行方法main线程,名字就是"main";

String getName():返回该线程的名字;

代码语言:javascript
复制
String name = th.getName();

Thread.currentThread().getName():返回主线程的名字;

代码语言:javascript
复制
String name1 = Thread.currentThread().getName();

void setName(String name):设置线程的名字

代码语言:javascript
复制
th.setName("hh");

创建线程的方式②(实现接口Runnable

  1. 定义类实现Runnable接口;
  2. 覆盖接口中的run()方法;
  3. 创建Thread类的对象;
  4. 将Runnable接口的子类对象作为参数传递给Thread类构造方法;
  5. 调用Thread类的start()方法开线程;

实现Runnable类

代码语言:javascript
复制
public class RunnableDemo implements Runnable{
    @Override
    public void run(){
      //执行体 
    }
}

测试类

代码语言:javascript
复制
public class Test {
    public static void main(String[] args) {
      RunnableDemo rb=new RunnableDemo();
      Thread td=new Thread(rb);
      td.start();
    }
}

继承Thread和实现Runnable接口有啥区别有啥区别?

  1. 实现Runnable接口,避免了继承Thread类单继承的局限性;
  2. 更加符合面向对象的编程;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档