用java实现一个可创建4个线程的程序,每个线程在休眠1秒后显示该线程已运行的时间,

用java实现一个可创建4个线程的程序,每个线程在休眠1秒后显示该线程已运行的时间,每个线程显示10次后停止

第1个回答  2013-12-30
测试了一下,应该可以用,你可以试试,不对的地方再问我~
public class BaiduThread implements Runnable {
    private String name;
    public BaiduThread(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        long startTime = System.currentTimeMillis();
        long runTime = 0;
        while(runTime < 10){
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        runTime = (System.currentTimeMillis() - startTime)/1000;
        System.out.println(name + " totoal cost : " + runTime + "S");
    }
}
public static void main(String[] args) {
    for (int i = 1; i <= 4; i++) {
        BaiduThread baiduThread = new BaiduThread("thread" + i);
        Thread th = new Thread(baiduThread);
        th.start();
        }
    }
}

第2个回答  2013-12-30
import java.util.Date;


public class TestThread extends Thread  {
Long runStime=new Date().getTime();

public static void main(String[] args) throws InterruptedException {
TestThread t1 = new TestThread();
TestThread t2 = new TestThread();
TestThread t3 = new TestThread();
TestThread t4 = new TestThread();
t1.setName("线程1");
t2.setName("线程2");
t3.setName("线程3");
t4.setName("线程4");
t1.start();
t2.start();
t3.start();
t4.start();
}


public void run(){
int i=10;
while(i-->0){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.getName()+"运行时间:"+(new Date().getTime()-runStime));
}
}
}

..你看下 是你想要的吗

追问

运行后,出现
help 用于列出可能的选项

处理已完成。
为什么呢?是我哪里出现问题了吗?求解

追答

没明白你的意思

追问

运行后出现这个?是什么原因呢?

追答

你怎么运行的啊...我都是测试后 发给你的...你文件名字 要用 TestThread.java这些基础的你不会写错吧?

本回答被提问者采纳
第3个回答  2013-12-30
随手写了一个,没测过,有问题继续问我吧

public MyThread implement Runnable
{
public void run ()
{
for(int i=0;i<10;i++){
Thread.sleep(10*1000);
System.out.println(System.currentTime());
}
}
}

public class MyProgramme {

public static void main (String[] args)
{
MyThread t1=new MyThread();
MyThread t2=new MyThread();
MyThread t3=new MyThread();
MyThread t4=new MyThread();
t1.start();
t2.start();
t3.start();
t4.start();

}

}追问

好像有点问题呢,我也不知道是哪里有问题,不过还是谢谢啦

追答

public class MyThread implement Runnable

漏了一个class
分成2个类

用java实现一个可创建4个线程的程序,每个线程在休眠1秒后显示该线程已...
long runTime = 0; while(runTime < 10){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } runTime = (System.currentTimeMillis() - startTime)\/1000; System.out.println(name + " totoal cost : " + runTime + "S")...

为什么我的java程序明明开启了4条线程,却只有一条线程在运行?
是匿名对象的原因,匿名对象不是强引用,对象声明生命周期短,当第一条线程执行run之后,二三四条线程应该是被虚拟机回收了。一般多线程都不用匿名对象

求解JAVA编程题:编写一个应用程序,创建三个线程分别显示各自的运行时间...
public class ThreadRuningTime {public static AtomicInteger integer = new AtomicInteger(0);public static AtomicInteger s = new AtomicInteger(0);public static int threadNum = 3;public static void main(String[] args) {for (int i = 0; i < threadNum; i++) {new Thread(new MyThread...

Java让线程休眠的方法:sleep(long millis)
在SleepThread类中,实现了Runnable接口并重写了run()方法。run()方法中使用for循环打印线程输出。在循环中,通过sleep()方法使线程休眠500毫秒。当变量i等于3时,线程休眠2000毫秒。在主程序中,使用new关键字创建SleepThread线程并启动,同时在for循环中打印主线程输出。当变量i等于5时,主线程休眠2000毫...

基础Java题 试编写一个多线程的程序:启动4个线程。其中两个循环10次...
public class Day18_A {public static void main(String[] args) throws InterruptedException {Recoun rec = Recoun.getRec();Thread[] trr = new Thread[4];for (int i = 0; i < 4; i++) {trr[i] = new Thread(new NumberTest(rec, i), "线程" + (i + 1) + ":\\t");}...

java 多线程如何让程序运行一定时间后停止
那么你需要一个TimerTask 来控制这个线程,也就是计时线程。那么这个计时线程,有两种方法~第一种,比较不讲究的方法,也就是,对结果处理不好的方式,类似于过时方法的stop,就是把你的Task线程在TimerTask里面启动。TimerTask里面类似于 while(true){ Task.start();Date date = new Date();...

主线程显示,休眠3秒,次线程显示,休眠1秒
使用synchronized 将方法锁住,有且仅有一个线程可以操作getStr方法,此时不论哪个线程先进入,那么都会在方法中等待1秒后在出来,于是M线程进入,休眠一秒。而F进程在等待M线程运行完毕,等待时间1秒,然后进入getStr方法休眠1秒,于是M线程有1秒休眠,F线程等待加休眠时间一共2秒 ...

用Thread类新建一个线程,每隔1秒钟打印出当前时间,并在5秒后,中断该线...
import java.util.Date;\/ 可运行例子。。author lxq \/ public class MyThread extends Thread{ Override public void run() { \/\/ TODO Auto-generated method stub int time = 5;\/\/结束时间.while(time>0){ System.out.println("当前时间为:"+new Date().toLocaleString());\/\/等待1秒.try {...

利用Runnable 接口实现多线程,编写一个Java小程序。在屏幕上显示时间...
public static void main(String args[]) { new Time():} public Time() { this.setTitle("多线程");this.setSize(400,300):this.setVisible(true);this.setDefaultOperationClose(JFrame.EXIT_ON_CLOSE);timeLabel=new JLabel();this.getContentPane.add(timeLabel,BorderLayout.NORTH);Thread t...

java线程的状态有哪几种?
Java线程在生命周期中有多种状态:新建、就绪、运行、阻塞、等待和死亡。1. 新建状态(New)通过new语句创建线程对象时,该线程处于新建状态。此时线程对象已分配内存,但尚未启动。2. 就绪状态(Runnable)调用线程对象的start()方法后,线程进入就绪状态。线程等待获得CPU执行权,位于可运行池中。3. 运行...

相似回答