JAVA程序题

一,题目:实现两个线程,一个打印奇数,另外一个打印偶数,这两个线程并发.
以下,我写了两种方法可以供参考:

第一种方法
Judge.java

package com.jishuoushu.java;

public class Judge implements Runnable
{

    public Judge(String name)
    {
        this.name=name;
    }

    public void run()
    {
        while(true)
        {

          int a=(int)(Math.random()*100);
          if(this.name=="线程A")
          {
              if(a%2==0)
              {
                try
                {
                  System.out.println(name+"-->打印偶数:"+a);
                   Thread.sleep((int)(Math.random()*10)*1000);

                }catch(InterruptedException e)
                {
                  e.printStackTrace();
                }
              }

          }
          else
          {  
              if(a%2!=0)
              {
                try
                {
                  System.out.println(name+"-->打印奇数:"+a);
                   Thread.sleep((int)(Math.random()*10)*1000);

                }catch(InterruptedException e)
                {
                  e.printStackTrace();
                }
              }
          }

        }
    }

    private String name;

}

Test1.java

package com.jishuoushu.java;

public class Test1 {

    public static void main(String [] args)
    {
        System.out.println("两个线程开始运行");
        Judge j1=new Judge("线程A");
        Judge j2=new Judge("线程B");


        Thread th1=new Thread(j1);
        Thread th2=new Thread(j2);

        th1.start();
        th2.start();

    }

}

第二种方法
JiShu.java

package com.JiShu.java;

public class JiShu {
    public static void main(String [] args)
    {
        
        int count=500;
      System.out.println("两个线程开始运行:");
        new Thread()     //这是打印奇数的线程
        {
            public void run()
            {
                for(int i=1;i<count;i+=2)
                {
                    try
                    {
                        System.out.println("线程A->打印奇数:"+i);
                        sleep(500);

                    }catch(InterruptedException e)
                    {
                        e.printStackTrace();
                    }
                }
            };
        }.start();

        new Thread()     //这是打印偶数的线程
        {
            public void run()
            {
                for(int i=2;i<=count;i+=2)
                {
                    try
                    {
                        System.out.println("线程B->打印偶数:"+i);
                        sleep(500);
                    }catch(InterruptedException e)
                    {
                        e.printStackTrace();
                    }
                }
            };
        }.start();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值