public class ThreadDemo
{
public static void main(String[] args)
{
new TestThread().run(); //创建一个新线程对象
for(int i=0;i<5;++i)
{
System.out.println("main线程在运行");
}
}
}
class TestThread
{
public void run()
{
for(int i=0;i<5;++i)
{
System.out.println("TestThread在运行");
}
}
}
运行结果如下
TestThread在运行
TestThread在运行
TestThread在运行
TestThread在运行
TestThread在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
首先定义了 run()方法,用于循环输出5个连续的字符串,再使用关键字new创建了一个Thread类的无名对象,之后这个类名通过点操作符“.”调用无名对象的run()方法,输出“TestThread在运行”,最后执行main()方法中的循环,输出“main线程在运行”。从本例中不难看出,要想运行main() 方法中的 for 循环,必须要等TestThread类中的run()方法执行完,假设run()方法不是一个简单的for循环,而是一个运行时间很长的方法,那么即使后面的代码块(例如 main() 方法后面的 for 循环块)不依赖前面的代码块的计算结果,它也必须等待,同时这也是单一线程的缺陷。
虽然在实际应用中我们更多地讨论多线程,但单一线程在某些情况下也是必要的,在使用时,有几个关键的注意事项:
1. 明确线程的目的
2. 避免长时间阻塞
3. 代码的优化
4. 注意异常处理