1. 编写一个程序,创建两个线程,其中一个产生5个1~100之间的随机数,另一个线程将这5个数加起来。
2. 完成一个程序,实现在TextArea中输出最后一次鼠标单击的x,y坐标和连续单击次数。
这来个题,不知道怎么去做,由于线程学的不怎么好,所以请大家帮下我,给我点思路,或者参考代码,我试着自己写了一下,但是没有出现结果!

解决方案 »

  1.   

    大家再帮下我吧,那个awt包和swing包不怎么会了。
      

  2.   

    这么做似乎意义不大嘛..最终还是串行的..除非有好几个生成随机数的线程和计算的线程.你可以做个队列用来存生成的随机数,然后那个计算线程从队列里来取数.对列你可以自己实现或者用java.util.concurrent里的那些现程的队列来用.
      

  3.   

    随便写了一个
    public class NumThread extends Thread 
    {
    public CountThread countt=null;
    int num1=0;
    int num2=0;
    int num3=0;

    boolean exittag=false;  //Í˳ö±êÖ¾

    public boolean startup()
    {
      
    java.util.Random r=new java.util.Random();
            num1=r.nextInt(10); //Ëæ»úÊý
            num2=r.nextInt(10); 
            num3=r.nextInt(10); 
            
            try
            {
            this.start();
            }
            catch(Exception e)
            {
             e.printStackTrace();
             return false;
            }
             
            return true;
            
    }


    public void close()
    {
    System.out.println("NumThread is close");
    }

    public void run()
    {
      if(!exittag)
      {
    System.out.println("NumThread is run");
    System.out.println("num1 ="+num1);
    System.out.println("num2 ="+num2);
    System.out.println("num3 ="+num3);

    try
            {
            
            
            countt=new CountThread(this);
            countt.start();
            }
            catch(Exception e)
            {
             e.printStackTrace();
            }
          }
          else
          {
           this.close();
          }
            
            

    }

    public static void main(String args[])
    {
    NumThread test=new NumThread();
    test.startup();
    }
    }
     class CountThread extends Thread 
    {
    public NumThread numt=null;

    int count=0;  //¼ÆËã½á¹û

    boolean exittag=false;  //Í˳ö±êÖ¾

    public CountThread(NumThread instanse)
    {
    numt=instanse;
    }

    public void close()
    {
    System.out.println("CountThread is close");
    }

    public void run()
    {
      if(!numt.exittag)
      {
    System.out.println("CountThread is run");
    int count=numt.num1+numt.num2+numt.num3;

    System.out.println("count ="+count);

    exittag=true;
    numt.exittag=true;

    this.close();
    numt.close();
       }
       else
       {
        this.close();
       }


    }
    }
      

  4.   

    上面那个代码有点复杂了吧,你看这个行不
    import java.util.Random;
    public class RandomThread extends Thread{
    private int num1;
    private int num2;
    private int num3;
    private int num4;
    private int num5;

    public int getNum1() {
    return num1;
    }
    public void setNum1(int num1) {
    this.num1 = num1;
    }
    public int getNum2() {
    return num2;
    }
    public void setNum2(int num2) {
    this.num2 = num2;
    }
    public int getNum3() {
    return num3;
    }
    public void setNum3(int num3) {
    this.num3 = num3;
    }
    public int getNum4() {
    return num4;
    }
    public void setNum4(int num4) {
    this.num4 = num4;
    }
    public int getNum5() {
    return num5;
    }
    public void setNum5(int num5) {
    this.num5 = num5;
    }
    public RandomThread(){
    Random rand = new Random();
    this.num1=rand.nextInt(10);
    this.num2=rand.nextInt(10);
    this.num3=rand.nextInt(10);
    this.num4=rand.nextInt(10);
    this.num5=rand.nextInt(10);
    System.out.println("*******num1****"+num1);
    System.out.println("*******num2****"+num2);
    System.out.println("*******num3****"+num3);
    System.out.println("*******num4****"+num4);
    System.out.println("*******num5****"+num5);
    }
    public void run(){
    Thread sumThread = new SumThread(this);
    sumThread.start();
    }
        public static void main(String[] args){
         Thread randomThread = new RandomThread();
         randomThread.start();
        }
    }
    class SumThread extends Thread{
    private RandomThread randomThread;
    public SumThread(RandomThread randomThread){
    this.randomThread =randomThread;
    }
    @Override
    public void run(){

    int sum =randomThread.getNum1()+randomThread.getNum2()+randomThread.getNum3()+randomThread.getNum4()+randomThread.getNum5(); System.out.println("-------sum-----"+sum);

    }

    }
      

  5.   


    package thread;import java.util.Random;
    public class Run {
    public static void main(String[] args) {
    RThread tt=new RThread();
    tt.start();
    try {
    tt.join();
    int[] array=tt.ia;
    int sum=0;
    for(int i=0;i<5;i++){
    sum+=array[i];
    }
    System.out.println(sum);
    } catch (InterruptedException e) {

    e.printStackTrace();
    }
    }
    }
    class RThread extends Thread{
    int[] ia=new int[5];
    public void run(){
    for(int i=0;i<5;i++){
    ia[i]=Math.abs(new Random().nextInt()%100+1);
    }
    }
    }
      

  6.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jiajianishizuihaode】截止到2008-06-29 08:28:55的历史汇总数据(不包括此帖):
    发帖数:17                 发帖分:330                
    结贴数:11                 结贴分:240                
    未结数:6                  未结分:90                 
    结贴率:64.71 %            结分率:72.73 %            
    楼主加油