gpt4 book ai didi

java - 在Java中,我必须采用数组并使用该值使用线程递增一次并递减两次

转载 作者:行者123 更新时间:2023-12-02 07:54:30 25 4
gpt4 key购买 nike

我正在编写一个程序,其详细信息是:1. 用户在数组中输入值,程序中自动输入的值乘以 0 应插入到每个索引中。2.使用线程,第一个线程在用户输入的值中调用它的减量(2),然后它进入休眠状态1秒。当 sleep 调用时,第二个线程调用它,它会增加 1,然后 sleep 持续 2 秒,然后第一个线程再次调用它,再次递减递增的值,依此类推,直到递减的线程的值等于 0。当减量值为零时,自动增量必须停止。

我现在有了代码,如果有人理解我的问题,可以帮助我......

所有评论都应该受到赞赏..

       //Through Implementing Runnable Interface

//Create a second thread

//import java.util.Scanner;




class NewThread extends Thread implements Runnable {
Thread t;
NewThread(){
//Create a new, second thread

t = new Thread(this, "Demo AASSINGMENT");
//System.out.println("Child Thread: "+ t);
t.start();//Start the thread

}

//This is the entry point for the second thread.


public void run(){

try{
for(int i = 10; i>0; --i){

System.out.println("Decrement: " +i);
//i--;
//System.out.println("Child Thread 2nd dec: " + i);
Thread.sleep(1000);
}
}


catch(InterruptedException e){
System.out.println("Decrement INterrupted");
}

System.out.println("Oops!! -- Decreasing Value is less than or equal to zero");
}//run

}//class



class ThreadDemo {


public static void main(String args[]){
new NewThread();//create a new thread
int[] arr; int dj;

// Scanner input = new Scanner(System.in);
// System.out.print("Enter Your Desired Value : ");
//int z = input.nextInt();
try{

//arr = new int[z];
//for(dj =0; dj<array.length;dj++)
//{
// array[dj]=0;
// System.out.println("0's inserted "+ array[dj]);
//}

//while(z!=0){

for(int i = 10; i<=14; i++){

System.out.println("Increment: " +i);
//if(i>6){
//System.out.println("Main Thread Exiting");}
Thread.sleep(2000);

}//for

}//try

catch(InterruptedException e){
System.out.println("Main Thread Interrupted");
}
System.out.println("Increasing Value has exceeded from 14 so Exiting");


}//main
}//class

最佳答案

在您的 main 方法中,您创建了一个 newThread 实例,但您从未启动它。除非你启动它,否则它永远不会执行。

编辑以提供更多实现信息

作为以下解释的先导,通常您的类不会扩展Thread。相反,实现 Runnable,然后创建一个标准 Thread 实例来执行您的 Runnable 实例。

所以,我建议您修改代码如下:

class NewRunnable implements Runnable
{
public void run()
{
// Do important background stuff here
}
}

public static void main (String[] args)
{
Thread thr = new Thread ( new NewRunnable( ) ) ;
thr.start( ) ;

// Do other important stuff
}

关于java - 在Java中,我必须采用数组并使用该值使用线程递增一次并递减两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817114/

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