多线程的认识

概念

并发和并行

并发是针对单核 CPU 提出的,而并行则是针对多核 CPU 提出的。
和单核 CPU 不同,多核 CPU 真正实现了“同时执行多个任务”

  • 并发:同一时间段内发生的两个或多个事情(单核 CPU )相当于一个时间段内要做好多事情,但是一次只能做一件 例如:我下班回到家里又要做饭又要拖地

  • 并行:同一时刻发生的两个或多个事情(多核 CPU )一个时间点上同时在做两件事情例如:我有女朋友,我下班回家后,我来做饭,女朋友来拖地,两个事情在同时进行

进程和线程

  • 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。
  • 线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。

创建线程

继承Thread 类

  1. 创建子类继承Thread
  2. 重写子类中的run方法实现业务需求
  3. 创建子类对象
  4. 调用start方法实现
//1、创建继承Thread类
class MyThread extends Thread{
    //2、重写run方法
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            //
            System.out.println("另外的线程"+ i);
        }
    }
}

public class Tthread {
  public static void main(String[] args) {
      //3、创建子类对象
      MyThread myThread = new MyThread();
      //4、调用start方法
      myThread.start();
    //  主线程
    for (int i = 0; i < 100; i++) {
      //
      System.out.println("主线程" + i);
    }
  }
}

实现Runnable接口

  1. 定义Runnable接口的实现类, 重写该接口的run0方法,该run()方法的方法体同样是该线程的线程执行体。
  2. 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象,
  3. 调用start方法启动线程

//创建类实现Runnable接口
class MyRunnable implements Runnable{
    //重写接口中的run方法
    @Override
    public void run() {
    for (int i = 0; i < 10; i++) {
      //
      System.out.println("第二个线程"+ i);
    }
    }
}


public class thread2 {
  public static void main(String[] args) {
      //创建Runnable实现类的实例
   MyRunnable myRunnable =  new MyRunnable();
   //实例作为Thread的target来创建Thread对象
   Thread thread = new Thread(myRunnable);
   //调用start方法启动线程
   thread.start();
    for (int i = 0; i < 300; i++) {
      //
        System.out.println("主线程"+ i);
    }
  }

线程的执行顺序是杂乱无规律的
在这里插入图片描述

线程常用方法

public static void sleep(long millis)
当前线程主动休眠millis 毫秒。
public static void yieldl)
当前线程主动放弃时间片,回到就绪状态,竞争下一次时间片。
public final void join()
允许其他线程加入到当前线程中。
public void setPricritytint)
线程优先级为1-10,默认为5,优先级越高。表示获取CPU机会越多。
public voi setDaermon(boolean)
设置为守护线程线程有两类:用户线程(前台线程)、守护线程〔后台线程)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值