黑马程序员技术交流社区

标题: 多线程问题,运行无结果 [打印本页]

作者: wcrystal    时间: 2015-3-18 17:44
标题: 多线程问题,运行无结果
class Bank
{
          private int sum;
          //Object obj=new Object();
          public synchronized void add(int n)
          {
                   //synchronized(obj)
                    //{
                      sum=sum + n;
                      try
                      {
                            Thread.sleep(10);
                      }
                      catch (Exception e)
                      {
                      }
                      System.out.println("sum:"+sum);
         
                   //}
                    
          }
}

class cus implements Runnable
{
         privateBank b=new Bank();
         publicvoid run()
         {
                   for(int x=0;x<3 ;x++ )
                   {
                            b.add(100);
                   }
         
         }
}

class BankDemo
{
         publicstatic void main(String[] args)
         {
                   cusc=new cus();
                   ThreadT1=new Thread();
                   ThreadT2=new Thread();
                   T1.start();
                   T2.start();
         }
}


作者: 艺多不压身丶    时间: 2015-3-18 17:53
  1. class Bank{
  2.         private int sum;
  3.         public synchronized void add(int num)throws InterruptedException{
  4.                 sum+=num;
  5.                 Thread.sleep(3000);
  6.                 System.out.println("总数;"+sum);
  7.         }
  8. }
  9. class Cus implements Runnable{
  10.         private Bank b=new Bank();
  11.         public void run(){
  12.                 try{
  13.                         for(int x=0; x<3; x++)
  14.                         b.add(100);
  15.                 }catch(InterruptedException e){}
  16.         }
  17. }
  18. class BankDemo{
  19.         public static void main(String[] args)throws InterruptedException{
  20.                 Cus c=new Cus();
  21.                 Thread t1=new Thread(c);
  22.                 Thread t2=new Thread(c);
  23.                 t1.start();t2.start();
  24.         }
  25. }
复制代码


作者: 殷俊    时间: 2015-3-18 17:57
你子类实现的是接口Runnable,那么你在main函数里,在新建子类对象后,要把子类对象作为参数传给Thread类,这样子类和线程才产生了练习,否则就算实现了接口也没什么用
作者: wcrystal    时间: 2015-3-18 18:02
殷俊 发表于 2015-3-18 17:57
你子类实现的是接口Runnable,那么你在main函数里,在新建子类对象后,要把子类对象作为参数传给Thread类, ...

非常感谢,看了大半天呢。
作者: 田晓莉    时间: 2015-3-18 20:03
艺多不压身丶 发表于 2015-3-18 17:53

怎么才能把代码发成这样子的格式呢?复制粘贴的看起来如这个好~~教教我呗:loveliness:
作者: 艺多不压身丶    时间: 2015-3-18 20:27
田晓莉 发表于 2015-3-18 20:03
怎么才能把代码发成这样子的格式呢?复制粘贴的看起来如这个好~~教教我呗 ...

就是这样

QQ截图20150318202527.png (33.73 KB, 下载次数: 6)

QQ截图20150318202527.png

QQ截图20150318202601.png (62.49 KB, 下载次数: 17)

QQ截图20150318202601.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2