Java线程和多线程(一)——线程的基本概念

本文介绍了Java线程的基础概念,包括进程与线程的区别、Java多线程的实现方式、线程优点以及线程状态。重点讨论了线程休眠的原理和`join`方法的使用,强调线程的执行依赖于操作系统的线程调度器。
摘要由CSDN通过智能技术生成

Java 线程是一个轻量级执行任务的处理单元。Java提供了Thread类来支持多线程,开发者在应用中可以创建多个线程来支持并发执行任务。

在应用中存在两种类型的线程,用户线程守护线程。当我们启动应用的时候,main函数是第一个启动的用户线程,开发者可以在之后自由的创建用户线程。当所有的线程执行完毕,JVM会终结掉程序。

开发者也可以配置不同线程的优先级,但是这并不代表更高优先级的线程会比低优先级的线程先执行。因为线程的执行取决于线程调度器,而线程调度器的实现是基于操作系统的。当一个线程启动后,它的执行便交给了操作系统的线程调度器,JVM不再拥有其控制的权限。

开发者可以通过实现Runnable接口,或者是继承Thread类来实现多线程。

Thread t = new Thread(new Runnable(){
    @Override
    public void run() {
    }
});

上面的代码就是最简单的用来创建线程的方式,其中,我们使用到了Runnable的匿名类。

Java线程

进程线程是执行的基本单元。Java的并发编程更为关注的是线程。

进程

进程是一个包含了所有执行环境的单元,可以将其看作为一个程序或者应用。然而程序本身内部也可能包含多个进程。Java的运行环境是作为一个单独的线程来工作的,但其内部包含了不同的类以及程序。

线程

线程也被称作轻量级的进程。线程要求的资源更少,并且存在于进程之中,所有的线程共享进程的资源。

Java多线程

每一个Java的应用都至少包含一个线程——主线程。尽管后台也会存在一些其他的线程,例如内存管理,系统管理,信号处理等等,但是从应用来看,主函数是第一个线程,并且我们可以从其中创建多个线程。

多线程指的是2个或者更多的线程来在一个程序中并发地执行任务。单处理的电脑只能在同一时间执行一个线程,时间分片是操作系统给不同的进程线程用来共享处理器时间的。

线程的优点

  • 线程与进程相比更为轻量级,创建线程的资源远远少于进程。
  • 线程共享其父进程的数据和代码。
  • 线程间的上下文切换的代价比进程间上下文的切换代价小很多。
  • 线程之间的交互相对于进程来说更为简单。

Java提供了两种方式来创建线程。

  • 实现java.lang.Runnable接口
  • 继承java.lang.Thread

Thread VS Runnable

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值