Thread的start()与run()方法的区别:
调用一个Thread的start方法,可以启动一个新线程,并在新线程中调用该Thread实例的run()方法中的代码。 新线程启动的方法见JDK中Thread类中start()源码如何实现。
调用一个Thread的run方法,不会启动新线程,而是在调用run方法时的当前线程中,直接调用run()中的代码,没有实现多线程的机制。
package base;
/*
* 类名 TestRun.java
* 说明 description of the class
* 创建日期 2011-3-16
* 作者 kobe
* 版权 ***
*/
public class TestRun implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName() + " "+i);
}
}
public static void main(String[] args){
TestRun test=new TestRun();
new Thread(test,"线程1").run();
new Thread(test,"线程2").run();
// new Thread(test,"线程1").start();
// new Thread(test,"线程2").start();
}
}
run运行结果:
main 0
main 1
main 2
main 3
main 4
main 5
main 6
main 7
main 8
main 9
main 0
main 1
main 2
main 3
main 4
main 5
main 6
main 7
main 8
main 9
start运行结果:
线程1 0
线程2 0
线程1 1
线程2 1
线程1 2
线程1 3
线程1 4
线程1 5
线程1 6
线程2 2
线程1 7
线程2 3
线程1 8
线程2 4
线程1 9
线程2 5
线程2 6
线程2 7
线程2 8
线程2 9
分享到:
相关推荐
通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行...
t.start(); setContentView(R.layout.activity_main); System.out.println("Activity-->"+ Thread.currentThread().getId()); System.out.println("Activity-->"+ Thread.currentThread().getName()); }...
start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。start()不能被重复调用。 run() : run()就和普通的成员方法一样,可以被重复调用。单独调用run()的话,会在当前线程中执行run(),而并不会启动...
主要介绍了java中thread线程start和run的区别,run()是Runnable接口中定义的一个方法,是为了让客户程序员在这个方法里写自己的功能代码的。直接调用和普通的类调用自己的成员方法是没有任何区别的
通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行...
start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。start()不能被重复调用。而run() : run()就和普通的...下面通过示例代码给大家介绍了Java Thread中start()和run()的区别,感兴趣的朋友一起看看吧
本文以java中thread的start()和run()的区别做详细介绍, 需要了解跟多的朋友可以参考下
Java是一种功能强大、可靠性高、跨平台的编程语言,适用于各种应用场景。它被广泛用于企业级应用开发、移动应用开发、云计算、大数据处理等领域,是一门值得学习和掌握的编程语言。
主要介绍了Thread中start()和run()的区别,Thread类包含start()和run()方法,它们的区别是什么?下面将对此作出解答
认识Thread和Runnable 认识Thread的start和run 线程状态说明
继承Thread类: 1必须重写run 方法:里面放置的实际的线程体 2 启动线程: 3创建Thread对象 4调用Thread对象的start 方法启动线程
class ThreadDemo extends Thread { public thread1(String s) { super(s); } public void run() { while(true) System.out.println(getName()); } } class thread2 extends ... thread1.start(); thread2.start(); } }
3. 每个线程都是通过某个特定的Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体。 4. 通过调用Thread类的start()方法来启动一个线程(只是将线程由新生态转为就绪态,而不是运行态)。
1 使用run()方法启动线程,它打印的线程名是MainThread,也就是主线程。 import threading,time def worker(): count = 1 while True: if count >= 4: break time.sleep(1) count += 1 print(“thread name = {}”....
Thread 类提供了 start() 方法来启动线程,run() 方法来执行线程的执行体。线程可以通过 join() 方法等待线程的退出。 5. 线程的优先级 Thread 类提供了 setThreadPriority() 方法来设置线程的优先级,优先级范围...
新写自己的Threading类 class MyThread(threading.Thread):#我的Thread类 判断流程结束没 用于os shell命令是否执行判断 ... # 调用start自动执行的函数 def run(self): self.result = self.func() self.resul
QThread::run()是线程的入口 相当于 main函数一样 创建的线程通过调用start()来执行run(); run() 是一个虚函数 通过子类实现方法 通过moveToThread()函数来实现 作用:将某一个对象从当前的线程中推到另一个线程中,...
Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并实现该接口的run()方法.创建一个Thread对象,用实现的Runnable接口...
本示例 演示采用线程的方式在后台执行任务 要在Android系统中创建和启动线程,与传统的Java程序相同,首先要创建一个Thread对象,使用Thread类的start方法启动线程 启动后将会执行Runnable接口的run方法
public void run() { while(true) { if(num>0)//:如果有票! System.out.println(Thread.currentThread().getName()+"线程出售的是第"+ num-- +"张火车票!"); } } public static void main(String...