gpt4 book ai didi

java - java同时运行两个线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:59:31 25 4
gpt4 key购买 nike

我已经使用 timertask 来安排我的 java 程序。现在,当 timertask 的运行方法正在运行时,我想运行两个同时运行的线程并执行不同的功能。这是我的代码..请帮助我..

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class timercheck extends TimerTask{
// my first thread
Thread t1 = new Thread(){
public void run(){
for(int i = 1;i <= 10;i++)
{
System.out.println(i);
}
}
};

// my second thread
Thread t2 = new Thread(){
public void run(){
for(int i = 11;i <= 20;i++)
{
System.out.println(i);
}
}
};

public static void main(String[] args){
long ONCE_PER_DAY = 1000*60*60*24;

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 05);
calendar.set(Calendar.SECOND, 00);
Date time = calendar.getTime();

TimerTask check = new timercheck();
Timer timer = new Timer();
timer.scheduleAtFixedRate(check, time ,ONCE_PER_DAY);
}

@Override
// run method of timer task
public void run() {
t1.start();
t2.start();
}
}

最佳答案

i want to run two threads which run at the same time and do different functions.

我认为您的线程正在“同时”运行。但是由于竞争条件,第一个线程只是在第二个线程之前排队它的输出。您不会看到来自线程 1 的一行和来自线程 2 的 1 行。根据线程调度,您将看到一个 block 然后另一个 block 。

如果您将输出量从 10 行增加到(例如)1000 行,您应该会看到它们都以交错输出同时运行。

关于java - java同时运行两个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com