原文:为什么不能直接调用run()方法,而必须调用start() 方法开启一个线程?

如果一个线程的start 方法内部调用run 方法,那么为什么我们不直接在我们的代码中调用run 方法呢 这样做有什么问题 start方法确保代码在新的线程上下文中运行.如果你直接调用run,那么它就像一个普通的方法调用,它将在当前线程的上下文中运行,而不是新的线程. start方法包含触发新线程的特殊代码 运行显然没有这个能力,因为你写的run方法没有包含它. 当你调用start 方法时你将创建 ...

2020-07-29 00:05 0 921 推荐指数:

查看详情

线程——调用start()方法直接调用run()方法的区别

调用run方法的结果是: 线程1.x=0线程1.x=1线程1.x=2线程1.x=3线程1.x=4线程1.x=5线程1.x=6线程1.x=7线程1.x=8线程1.x=9线程2.x=0线程2.x=1线程2.x=2线程2.x=3线程2.x=4线程2.x=5线程2.x=6线程2.x=7线程 ...

Tue Jun 06 23:25:00 CST 2017 0 5400
启动一个线程调用 run()还是 start()方法

启动一个线程调用 start()方法,使线程所代表的虚拟处理机处于可运行状态, 这意味着它可以由 JVM 调度并执行,这并不意味着线程就会立即运行。run()方 法是线程启动后要进行回调(callback)的方法。 ...

Mon Jun 01 21:20:00 CST 2020 0 1212
Thread直接调用run()和start()方法的区别

Thread类中run()和start()方法的区别如下: run()方法:在本线程调用该Runnable对象的run()方法,可以重复多次调用start()方法:启动一个线程调用该Runnable对象的run()方法,不能多次启动一个线程 ...

Mon Mar 02 21:22:00 CST 2015 0 10529
调用start() 方法时会执行run() 方法,为什么我们不能直接调用 run() 方法

调用start() 方法时会执行run() 方法,为什么我们不能直接调用 run() 方法? 学习或者复习多线程的时候有没有问过自己这个问题呢? 首先需要知道线程的几个状态以及多线程工作方式。   new 一个Thread,线程进入了新建状态,调用start() 方法,会启动一个线程 ...

Sun Apr 25 21:59:00 CST 2021 0 269
为什么我们调用start()方法时会执行run()方法,而不是直接调用run()方法

新建一个线程调用start()方法,会让一个线程进入就绪状态,当分配到时间片后,start()会进行相应的准备工作,然后在启动run()方法内的内容;而直接调用run()方法,意味着会把run方法当做一个main方法进行执行,并不会在某个线程中执行它,而是在主线程中进行执行。 ...

Mon Jan 13 17:33:00 CST 2020 1 1034
Java中多线程启动,为什么调用的是start方法,而不是run方法

前言 大年初二,大家新年快乐,我又开始码字了。写这篇文章,源于在家和基友交流的时候,基友问到了,我猛然发现还真是这么回事,多线程启动调用的都是start,那么为什么没人掉用run呢?于是打开我的idea,翻一波代码,带大家一探究竟。 继承thread类实现多线程 我们知道java有三种方式 ...

Sat Feb 13 19:16:00 CST 2021 0 423
Java 多线程启动为什么调用 start() 方法而不是 run() 方法

线程在工作中多多少少会用到,我们知道启动多线程调用的是 start() 方法,而不是 run() 方法,你知道原因吗? 在探讨这个问题之前,我们先来了解一些多线程的基础知识~ 线程的状态 Java 中,定义了 6 种线程状态,在 Thread 类可以找到: 这 6 种状态之间的关联 ...

Tue May 12 22:58:00 CST 2020 1 1343
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM