java_多线程并发编程基础篇—thread类中start()和run()方法的区别(代码片段)

leiblog leiblog     2022-12-04     606

关键词:

1. start() 和 run()的区别说明

start()方法: 它会启动一个新线程,并将其添加到线程池中,待其获得CPU资源时会执行run()方法,start()不能被重复调用。

run()方法:它和普通的方法调用一样,不会启动新线程。只有等到该方法执行完毕,其它线程才能获得CPU资源。

start() 和 run()的区别示例

// Demo.java 的源码
class MyThread extends Thread  
    public MyThread(String name) 
        super(name);
    

    public void run()
        System.out.println(Thread.currentThread().getName()+" is running");
     
; 

public class Demo   
    public static void main(String[] args)   
        Thread mythread=new MyThread("mythread");
        System.out.println(Thread.currentThread().getName()+" is running");
        mythread.run();
        mythread.start();
      

 运行结果

 main is running main is running mythread is running 

 

并发编程多线程基础(代码片段)

目录并发编程(一)多线程基础1、进程和线程的概念2、为什么要使用多线程3、多线程使用的场景4、多线程创建方式4.1、继承Thread类4.2、实现Runable接口4.3、匿名内部类4.4、线程池(后面细说)5、线程的声生命周期5.1、新建5.2、... 查看详情

java并发编程系列之一并发理论基础

...文章开始Java并发编程的进阶篇的学习,为了初学者对多线程的初步使用有基本概念和掌握,前置知识会对一些基础篇的内容进行介绍,以使初学者能够丝滑入戏。多线程学习,真正的难点不在于多线程程序的逻辑有多复杂,而... 查看详情

并发编程之线程多线程

线程开启线程的两种方法:#方式一:fromthreadingimport*importosdefwork():print(‘%sisworking‘%os.getpid())if__name__==‘__main__‘:t=Thread(target=work)t.start()方法1#方式二:classS_T(Thread):def__init__(self,name):super().__in 查看详情

深入浅出多线程——线程基础篇

概述  多线程是java编程中非常重要的一块,在多核CPU时代,多线程是最直接提高程序执行效率的途径。所以学好多线程对我们极其重要。Java多线程的基本应用  创建多线程有两种方式:    1,继承Thread类/***@authoritunic.... 查看详情

并发编程之多线程基础-thread和runnable的区别及联系

上篇文章讲述了创建线程的常用方式本篇主要分析一下Thread和Runnable两种方式创建线程的区别及联系联系:?Thread类实现了Runable接口。?都需要重写里面Run方法。区别:?Thread方式不支持多继承,Runnable方式支持多个实现?Runnable更容易... 查看详情

一脚踩进java之基础篇43——线程thread和runnable

一、Thread类1.1该如何创建线程呢?  通过API中搜索,查到Thread类。通过阅读Thread类中的描述。Thread是程序中的执行线程。Java虚拟机允许应用程序并发地运行多个执行线程。1.2继续阅读,发现创建新执行线程有两种方法。1)一... 查看详情

java并发编程:thread类的使用

一.线程的状态  在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。  线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个... 查看详情

java并发编程:thread类的使用

一.线程的状态  在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。  线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个... 查看详情

java并发编程:thread类的使用

一、线程的状态在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。  线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态... 查看详情

编程体系结构(05):java多线程并发

本文源码:GitHub·点这里||GitEE·点这里一、多线程导图二、多线程基础1、基础概念线程是操作系统能够进行运算调度的最小单位,包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个... 查看详情

java多线程和并发基础面试题

1.进程和线程之间有什么不同?一个进程是一个独立(selfcontained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量... 查看详情

多线程基础篇-javaee初阶-细节狂魔

文章目录前言线程是什么?Java中执行多线程编程下面我们在idea中实践准备工作:在idea中创建一个Java项目Thread类的基本方法拓展Thread类创建线程的写法1、最基本的创建线程的办法2、创建一个类实现Runnable接口,再创... 查看详情

javaee初阶多线程_基础篇_thread类的使用线程的几个重要操作和状态(代码片段)

...   🍚二、Thread的几个常见属性    🍛三、和线程相关的几个重要的操作          🍞🍞3.1启动线程-start()          🍣🍣3.2中断线程          🍤🍤3.3等待线程 -join()       ... 查看详情

并发编程之多线程基础篇及面试

线程与进程区别每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级... 查看详情

java多线程系列---“基础篇”08之join()

...一.join()介绍join()定义在Thread.java中。join()的作用:让“主线程”等待“ 查看详情

java入门篇13--多线程

多线程是java并发的基础,我们先来学习一下吧:首先,让我们来起一个多线程,看看publicclassHelloWorld{publicstaticvoidmain(String[]args)throwsException{//lambda写法Threadt=newThread(()->{System.out.println("threadstart");try{Thread.sleep(1 查看详情

韩顺平循序渐进学java零基础第17章多线程编程(代码片段)

第17章多线程编程580.程序进程线程进程是程序的一次执行过程,或是正在进行的一个程序。是动态过程,有其自身的产生、存在和消亡过程线程是由进程创建的,是进程的一个实体;一个进程可以拥有多个线程581.... 查看详情

java并发编程:runnable和thread实现多线程的区别(含代码)

Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势:1、可以避免由于Java的单继承特性而带来的局限;2、... 查看详情