首页 > 编程语言 > 详细

Java多线程| 01 | 线程概述

时间:2021-05-17 22:34:08      阅读:21      评论:0      收藏:0      [点我收藏+]

线程相关概念

  • 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位。可以把进程简单的理解为正在操作系统中运行的一个程序.
  • 线程:线程(thread)是进程的一个执行单元。一个线程就是进程中一个单一顺序的控制流,进程的一个执行分支进程是线程的容器,一个进程至少有一个线程。一个进程中也可以有多个线程

在操作系统中是以进程为单位分配资源,如虚拟存储空间,文件描述符等.每个线程都有各自的线程栈,自己的寄存器环境,自己的线程本地存储。

主线程与子线程

? JVM启动时会创建一个主线程,该主线程负责执行main方法,主线程就是运行main方法的线程。Java中的线程不是孤立的,线程之间存在一些联系,如果在A线程中创建了B线程,称B线程为A线程的子线程,相应的A线程就是B线程的父线程

串行、并行与并发

技术分享图片

并发可以提高事物的处理效率,即一段时间内可以处理或者完成更多的事情。并行是一种更为严格,理想的并发从硬件角度来说,如果单核CPU,一个处理器一次只能执行一个线程的情况下,处理器可以使用时间片轮转技术,可以让CPU快速的在各个线程之间进行切换,对于用来来说,感觉是三个线程在同时执行。如果是多核心CPU,可以为不同的线程分配不同的CPU内核。

线程常用方法

currentThread()

Thread.currentThread()方法可以获得当前线程。

Java中的任何一段代码都是执行在某个线程当中的,执行当前代码的线程就是当前线程,同一段代码可能被不同的线程执行,因此当前线程是相对的,Thread.currentThread()方法的返回值是在代码实际运行时候的线程对象

public class SubThread extends Thread{
    public SubThread(){
        System.out.println("构造方法中,Thread.currentThread().getName():"+Thread.currentThread().getName());
        System.out.println("构造方法,this.getName():"+this.getName());
    }

    @Override
    public void run() {
        System.out.println("run方法中,Thread.currentThread().getName():"+Thread.currentThread().getName());
        System.out.println("run方法,this.getName():"+this.getName());
    }
}

  public static void main(String[] args) throws InterruptedException {
        SubThread t2 = new SubThread();
        t2.setName("t2");
        //设置线程的名称
         t2.start();
         Thread.sleep(500); //main线程睡眠500毫秒
        //Thread(Runnable) 构造方法形参是Runnable接口,调用时传递的实参是接口的实现类对象
         Thread t3 = new Thread(t2);
         t3.start();
    }

输出结果

构造方法中,Thread.currentThread().getName():main
构造方法,this.getName():Thread-0
run方法中,Thread.currentThread().getName():t2
run方法,this.getName():t2
run方法中,Thread.currentThread().getName():Thread-1
run方法,this.getName():t2

Java多线程| 01 | 线程概述

原文:https://www.cnblogs.com/silloutte/p/14777693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!