JAVA学习之多线程知识点整理

1、什么是进程?什么是线程?

进程是一个应用程序。线程是一个进程中的执行场景或者执行单元。一个进程可以启动多个线程。进程之间内存独立不共享。同一个进程中的线程之间,堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈。

2、线程状态

创建状态

在程序中用构造方法创建一个线程对象后,新的线程对象便处于新建状态,此时,它已经有了相应的内存空间和其他资源,但还处于不可运行状态。

创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。

就绪状态

新建线程对象后,调用该线程的start()方法就可以启动线程。当线程启动时,线程进入就绪状态。此时,线程将进入线程队列排队,等待CPU调度服务,这表明它已经具备了运行条件。

运行状态

当就绪状态的线程被调用并获得处理器资源时,线程就进入运行状态。此时将自动调用该线程对象的run()方法,run()方法定义了该线程的操作和功能。

阻塞状态

一个正在运行的线程在某些特殊情况下,如被人为挂起或需要运行耗时的输入/输出操作时,将让出CPU并暂时中止自己的运行,进入阻塞状态。在可运行状态下,如果调用sleep()、suspend()、wait()等方法,线程将进入阻塞状态。阻塞时,线程不能进入排队队列,只有当引起阻塞的原因被消除后,线程才可以转入就绪状态。

终止状态

当线程体中的run()方法运行结束后,线程即处于终止状态,处于终止状态的线程不具有继续运行的能力。

3、关于线程常用的方法、

Thread方法

public Thread(Runnable target,String name)

1、构造方法;

2、接收两个参数:Runnable接口子类对象及线程名称;

3、作用:实例化线程对象,同时设置线程名称;

setName方法

public final void setName(String name);

1、普通方法;

2、接收一个参数;

3、无返回值;

4、作用:设置线程名称;

getName方法

public final String getName();

1、普通方法;

2、无参;

3、有返回值:返回值类型String;

4、作用:获得线程名称;

currentThread方法

public static Thread currentThread();

1、静态方法;

2、无参;

3、有返回值:返回值Thread类型的对象;

4、获取当前线程对象;

sleep方法

static void sleep(long millis)

1、静态方法:Thread.sleep(1000);

2、参数是毫秒;

3、作用:让当前线程进入休眠,进入“阻塞状态”,放弃占用CPU时间片,让给其他线程使用。

4、Thread.sleep(1000)方法,可以做到这种效果:间隔特定的事件,去执行一段特定的代码;每隔多久执行一次。

isInterrupted方法

public boolean isInterrupted();

1、普通方法;

2、无参;

3、有返回值:返回值类型Boolean;

4、作用:判断线程是否被中断;

interrupt方法

public void interrupt();

1、普通方法;

2、无参;

3、无返回值;

4、作用:中断线程执行;

join方法

public final void join();

1、普通方法;

2、无参;

3、无返回值;

4、作用:强制执行某个线程,待其执行完毕后其他线程再继续执行;

yield方法

public static void yield();

1、静态方法;

2、无参;

3、无返回值;

4、作用:将当前的调度让给其他线程执行,自己再等待下次调度再执行。线程状态从运行状态回到就绪状态。

setPriority方法

public final void setPriority(int newPriority);

1、普通方法;

2、有参:参数为给线程设置的优先级值;优先级有三种:最高优先级MAX_PRIORITY【对应数值为10】、中等优先级NORM_PRIORITY【对应数值为5】、最低优先级MIN_PRIORITY【对应数值为1】

3、无返回值;

4、作用:设置线程的优先级;

getPriority方法

public final int getPriority();

1、普通方法;

2、无参;

3、有返回值:返回值int类型的数值;

4、作用:获取线程的对应的优先级数值;

原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/course/java/multithreading.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZEROZERO
上一篇 2020年3月17日
下一篇 2020年6月24日

相关推荐

  • Java自学之类与对象

    定义 类是由成员属性和方法组成。成员属性主要定义类的一个具体信息,实际上一个成员属性就是一个变量,而方法是一些操作的行为。类的定义基础语法如下。 一个类定义完成后并不能够被直接使用…

    2020年11月25日
    1.4K
  • spring boot练习篇之用户登录系统【接口篇】

    写在前面 抛弃JSP,只做纯粹的前后端分离项目。 作为一个资深前端工作者,想要转JavaWeb开发,无论是书籍,还是网上视频、资料,竟然没有一篇能清楚明白地讲解怎样搭建一个前后端分…

    2021年5月25日
    1.7K
  • Java自学之泛型

    在Java语言中,为了方便接收参数类型的统一,提供了核心类Object,利用此类对象可以接收所有类型的数据(包括基本数据类型和引用数据类型)。但是由于其所描述的数据范围过大,所以在…

    2020年12月8日
    1.4K
  • Java自学之继承

    在面向对象的设计过程中,类是基本的逻辑单位。但是对于这些基本的逻辑单位需要考虑到重用的设计问题,所以在面向对象的设计里提供有继承,并利用这一特点实现类的可重用性定义。 类继承定义 …

    2020年12月3日
    1.5K
  • 如何使用IDEA2020.2新建servlet工程

    最近自学java时,发现IDEA更新到2020.2版本时,在新建工程时,有了明显的改动。由于小编刚学到servlet,IDEA这一突然间的改动,导致小编不会新建servlet工程了…

    2020年8月17日
    6.0K
  • spring4.x学习之创建工程

    断断续续学习Java有两三个月了,目前还是处于入门阶段。关于java及spring那些的设计理念方面的理论知识,不花费大量精力及时间是看不懂的(至少对于我这么一个前端转后端的初学者…

    2019年3月19日
    1.9K
  • Java自学之I/O编程

    I/O(Input/Output,输入/输出)可以实现数据的读取与写入操作,Java针对I/O操作的实现提供了java.io工具包,此包的核心组成由File类、InputStrea…

    2020年12月21日
    1.3K
  • Java自学之反射机制

    重用性是面向对象设计的核心原则。为了进一步提升代码的重用性,Java提供了反射机制。反射技术首先考虑的是“反”与“正”的操作,所谓的“正”操作,是指当开发者使用一个类的时候,一定要…

    2020年12月24日
    1.3K
  • Java自学之类结构扩展

    面向对象中的核心组成是类与接口,在项目中会利用【包】进行一组相关类的管理,这样适合于程序代码的部分更新,也更加符合面向对象封装性的概念,同时合理地使用封装也可以方便地实现实例化对象…

    2020年12月10日
    1.4K
  • Java自学之多线程编程

    多线程编程是Java语言最为重要的特性之一。利用多线程技术可以提升单位时间内的程序处理性能,也是现代程序开发中高并发的主要设计模式。 进程与线程 进程是一个应用程序。线程是一个进程…

    2020年12月16日
    1.6K

发表回复

登录后才能评论