/* 编写3个线程分别实现各自运行时间,第一个线程每隔1秒运行一次,第二每隔5秒第三个每隔10秒 */

2020-05-22 教育 97阅读
首先,要实现线程类有两种方法。一种就是实现接口,就想你上面的SZ这个类。另一种就是继承Thread类。你直接new一个Thread严格来说也没错误。你的错误我给你写几条:
1、main方法里s没有调用start()方法,自然s.t1也就没有被实例化。
2、即使改正了第1,也可能先执行s.t1.start(),而不是s.start()所以s.t1仍然没被实例化,调用它的start()自然也错误。
最后,为了满足你的要求我给你写了个简单的,相信你能看懂,其实没你想象的那么复杂,如下:
class Clock3
{
public static void main(String[] args)
{
new MyThread("线程1",1000).start();
new MyThread("线程2",5000).start();
new MyThread("线程3",10000).start();
}

}
class MyThread extends Thread {
private long m = 0;
MyThread(String name, long m) {
super(name);
this.m = m;
}
@Override
public void run() {
// TODO Auto-generated method stub
int x = 0;
try
{
while(x<100)
{
System.out.println(Thread.currentThread().getName()+"线程已经运行");
x++;Thread.sleep(m);
}}
catch(Exception e)
{
}

}
}
我测试过了,没问题!
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com