题解二:
package com.company;
import java.util.Date;
import java.util.Scanner;
import java.util.concurrent.ExecutionException;
/*
编写一个程序:用一个线程每隔1秒显示系统日期时间,另一个线程打印一个大数的所有因子,当质数计算完毕后,停止时间的显示
*/
class thread1 implements Runnable{
public void run(){
while(new f().a==0) {
Date date1 = new Date();
System.out.println(date1);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class thread2 implements Runnable{
private long num;
public thread2(long num){
this.num=num;
}
public void run(){
System.out.println("这个大数"+num+"的因子有:");
for(int i=1;i<=num;i++){
if (num%i==0){
System.out.println(i);
}
}
new f(1);
}
}
class f{
static int a=0;
f(){}
f(int a){
this.a=a;
}
}
public class Main {
public static void main(String[] args) throws InterruptedException, ExecutionException {
Scanner in=new Scanner(System.in);
long num=in.nextLong();
thread1 mythread1=new thread1();
Thread t1=new Thread(mythread1,"显示日期时间的线程");
thread2 mythread2=new thread2(num);
Thread t2=new Thread(mythread2,"打印大数因子的线程");
t1.start();
t2.start();
}
}