问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中线程的run()方法

发布网友 发布时间:2022-04-22 11:28

我来回答

5个回答

热心网友 时间:2023-08-16 14:01

当一个线程调用它的start()方法后,虚拟机就会去调用这个线程中的run()方法。
如myThread是一个线程对象,调用myThread.start();后,当CPU轮到这个线程使用时,虚拟机就会去调用这个线程的run()方法。

热心网友 时间:2023-08-16 14:02

上面几个说的也是我要说的几点,

run() 方法是不用参数的,不用传他就会知道。

因为线程里边大多都是死循环,和主线程同步运行。(当然实际不是这样的。但可以这样理解)

比如:定义一个用于转换状态的属性。

static final int STATE_GAME_RUN = 0;
static final int STATE_GAME_OVER = 1;

int state;

run 方法里边有这样的:
switch(state)
case STATE_GAME_RUN :
System.out.println("游戏进行中");
break;
case STATE_GAME_OVER:
System.out.println("游戏结束");
break;

当主线程里边state改变时,线程里边马上就会知道,还用传

热心网友 时间:2023-08-16 14:02

run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;

package com.ljq.test;

public class ThreadTest {
    
    /**
     * 观察直接调用run()和用start()启动一个线程的差别 
     * 
     * @param args
     * @throws Exception
     */
    public static void main(String[] args){
        Thread thread=new ThreadDemo();
        //第一种
        //表明: run()和其他方法的调用没任何不同,main方法按顺序执行了它,并打印出最后一句
        //thread.run();
        
        //第二种
        //表明: start()方法重新创建了一个线程,在main方法执行结束后,由于start()方法创建的线程没有运行结束,
        //因此主线程未能退出,直到线程thread也执行完毕.这里要注意,默认创建的线程是用户线程(非守护线程)
        //thread.start();
        
        //第三种
        //1、为什么没有打印出100句呢?因为我们将thread线程设置为了daemon(守护)线程,程序中只有守护线程存在的时候,是可以退出的,所以只打印了七句便退出了
        //2、当java虚拟机中有守护线程在运行的时候,java虚拟机会关闭。当所有常规线程运行完毕以后,
        //守护线程不管运行到哪里,虚拟机都会退出运行。所以你的守护线程最好不要写一些会影响程序的业务逻辑。否则无法预料程序到底会出现什么问题
        //thread.setDaemon(true);
        //thread.start();
        
        //第四种
        //用户线程可以被System.exit(0)强制kill掉,所以也只打印出七句
        thread.start();
        System.out.println("main thread is over");
        System.exit(1);
    }
    
    public static class ThreadDemo extends Thread{
        @Override
        public void run() {
            for (int i = 0; i < 100; i++) {
                System.out.println("This is a Thread test"+i);
            }
        }
    }
}

热心网友 时间:2023-08-16 14:03

当一个线程调用它的start()方法后,虚拟机就会去调用这个线程中的run()方法。

热心网友 时间:2023-08-16 14:03

线程执行时程序需要做的步骤,通过start()方法可以调用到run()
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 人保车险计算器公式 应用程疞 车辆保险网上计算器 学习编程方法 汽车保险费用计算器 有哪些计时方法可以用在救生竞赛? 机动车损失保险计算器 为什么长程通信时一定要使用四线电路 车辆损失险保费计算器 请问,写java程序时,可以运用现成的方法,这些方法是谁写的?为什么可以直接调用? 车辆保险的保费如何计算器 如何解一个方程,都可以用哪些方法 下年车辆保险怎么计算公式 编程方法 解方程用最好的方法该怎么做 用结构化程序设计方法设计程序时,程序由哪几种基本的 java 中使用线程的方法到底有哪些? 进行控制测试和实施实质性程序时通常应采用什么方法 解一元二次方程什么时候用哪种方法? 车险理赔所有的计算公式都有哪些 弹塑性分析方法的动力弹塑性时程分析 车辆损失险的保费计算公式 机动车损失保险 计算公式 中国太平车险计算器 车险赔款的计算公式 新车机动车损失险如何计算公式 车损险赔款的计算公式 车损险赔偿计算公式 汽车第二年保险费用计算器 淘宝上的图片空间在那? 怎样从我的电脑上把图片传到淘宝网的图片空间里 合并报表中涉及逆流交易时候少数股东损益的处理 中级会计实务财务合并报表逆流交易少数股东损益? 少数股东权益和少数股东损益如何调整 合并报表中逆流交易中关于少数股东问题 子公司逆流交易的合并抵销为什么借记少数股东权益? 子公司逆流交易的合并抵销为什么借记少数股东权益 合并报表中,顺流和逆流交易什么时候不用调整净利润? 合并报表调整抵消分录,用不用考虑*公司未实现内部交易损益的影响啊?