【Java学习】多线程_01

Java学习 专栏收录该内容
7 篇文章 0 订阅

进程和线程

进程是一块包含了许多资源的内存区域,进程中包含了一个或多个可执行的单元线程。
CPU将时间片分配给进程中的线程,线程并发运行,但不是同时运行。

线程状态

最开始new一个线程实例,调用start方法纳入到线程调度(Runnable),再运行(Running),run方法结束后进入Dead阶段退出。

创建线程的两种方式

第一种:继承Thread并重写run方法来定义线程要执行的任务

public void MyThread extends Thread(){
    Thread t = Thread.currentThread();//获取当前线程信息
    public void run(){
        for(int i=0;i<5;i++){
        System.out.println(t.getName());
        }
    }
}
ThreadDemo t0 = new ThreadDemo();
Thread t1 = t0.new MyThread();
//MyThread t1 = new MyThread();
//这样写会有内部类问题,所以先new一个新的对象再实例化

t1.start();

第二种:实现Runnable接口重写run方法

public void MyThread implements Runnable(){
    Thread t = Thread.currentThread();
    public void run(){
        for(int i=0;i<5;i++){
            System.out.println(t.getName());
        }
    }
}
Runnable t2 = t0.new MyThread();
Thread t3 = new Thread(t2);
t3.start();

Java有个特点,单继承性,那么第一种方法创建线程的话继承了Thread类后不能继承其他类,其次继承了Thread后重写run方法规定线程执行的任务,导致线程与任务有必然的耦合,不利于重用。
也可以使用匿名内部类完成线程创建

 new Thread(new Runnable(){
     public void run(){
         for(int i=0;i<5;i++){
             //任务
         }
     }
 }).start();
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值