线程实现方式

线程相关概念

并发:两个或多个事件在同一时间段发生,任务交替执行

并行:两个或多个事件在同一时刻发生,任务同时执行

进程:指内存中运行的应用程序,进程是程序的一次执行过程

线程:进程中的一个执行单元,负责进程中程序的执行,一个进程中至少有一个线程,也可为多线程


创建多线程程序

  • 方式一:创建Thread类的子类

    Thread类概述:java.lang.thread,线程类,虚拟机允许并发运行多个线程。

    步骤:

    1. 创建一个Thread类的子类
    2. 子类中重写类中run方法,设置线程任务
    3. 在主线程中创建子类对象
    4. 调用Thread类的start方法开启执行新线程,虚拟机调用执行run方法

    注意:

    • 两个线程并发运行,多次启动一个线程是非法的,结束后也不能再重新启动。
    • Java程序属于抢占式调度,根据优先级执行线程,同一优先级随机执行。
    • 多个线程在不同的栈空间中,互不影响。

    常用方法:

    • String getName()
      返回所在线程的名称。 如Thread-0
    • static Thread currentThread()
      返回对当前正在执行的线程对象的引用。 可与getName链式获取当前线程名称。
    • void setName(String name)
      设置线程名称。也可在子类中重载构造方法Thread(String name)直接取名。
    • static void sleep(long millis)
      在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。可写入for循环。
  • 方式二:实现Runnable接口(推荐)

    Runnable接口概述:java.lang.Runnable,只含有run方法。

    步骤:

    • 创建一个Runnable接口的实现类,并重写run方法,设置线程任务
    • 在主线程中创建接口的实现类对象
    • 创建Thread类对象,构造方法中传入接口的实现类对象
    • 通过Thread类对象调用start方法,开启新线程执行run方法

    优点:

    • 避免了单继承的局限性(Thread类的子类只能由一个亲生父亲)
    • 降低了程序的耦合性(解耦),将设置线程任务和开启新线程进行了分离,可往构造方法中传入不同实现类对象而开启不同线程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值