如果线程是使用单独的 Runnable 对象构造的,则调用线程类的 run() 方法,否则该方法不执行任何操作并返回。当 run() 方法调用时,会执行 run() 方法中指定的代码。您可以多次调用 run() 方法。
可以使用 start() 方法或通过调用 run() 方法本身来调用 run() 方法。但是当您使用 run() 方法调用自身时,就会产生问题。
返回
It does not return any value.
示例1:使用start()方法调用run()方法
public class RunExp1 implements Runnable
{
public void run()
{
System.out.println("Thread is running...");
}
public static void main(String args[])
{
RunExp1 r1=new RunExp1();
Thread t1 =new Thread(r1);
// this will call run() method
t1.start();
}
}
输出:
Thread is running...
示例2:使用run()方法本身调用run()方法
public class RunExp2 extends Thread
{
public void run()
{
System.out.println("running...");
}
public static void main(String args[])
{
RunExp2 t1=new RunExp2 ();
// It does not start a separate call stack
t1.run();
}
}
输出:
running...
在这种情况下,它会转到当前调用堆栈而不是新调用堆栈的开头。
示例 3:多次调用 run() 方法
public class RunExp3 extends Thread
{
public void run()
{
for(int i=1;i<6;i++)
{
try
{
Thread.sleep(500);
}catch(InterruptedException e){System.out.println(e);}
System.out.println(i);
}
}
public static void main(String args[])
{
RunExp3 t1=new RunExp3();
RunExp3 t2=new RunExp3();
t1.run();
t2.run();
}
}
输出:
1 2 3 4 5 1 2 3 4 5
在上面的示例3中,没有内容切换,因为这里t1和t2被视为普通对象而不是线程对象。
相关用法
- Java Thread resume()用法及代码示例
- Java Thread toString()用法及代码示例
- Java Thread interrupted()用法及代码示例
- Java Thread setDefaultUncaughtExceptionHandler()用法及代码示例
- Java Thread suspend()用法及代码示例
- Java Thread destroy()用法及代码示例
- Java Thread holdLock()用法及代码示例
- Java Thread getContextClassLoader()用法及代码示例
- Java Thread setContextClassLoader()用法及代码示例
- Java Thread sleep()用法及代码示例
- Java Thread getThreadGroup()用法及代码示例
- Java Thread isInterrupted()用法及代码示例
- Java Thread enumerate()用法及代码示例
- Java Thread notify()用法及代码示例
- Java Thread activeCount()用法及代码示例
- Java Thread isDaemon()用法及代码示例
- Java Thread setDaemon()用法及代码示例
- Java Thread getId()用法及代码示例
- Java Thread setName()用法及代码示例
- Java Thread getDefaultUncaughtExceptionHandler()用法及代码示例
注:本文由纯净天空筛选整理自 Java Thread run() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。