一道java面试笔试题

时间:2009-07-10 00:57:21   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:e int j;     public static void main(String args[]){     ThreadTest1 tt=new ThreadTest1();     Inc inc=tt.new Inc();     Dec dec=tt.new Dec();     for(int i=0;i<2;i++){     Thread t=new Thread(inc);     ...
  正文:

要求:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1.写出程序.

回答: 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题.

    public class ThreadTest1{

    private int j;

    public static void main(String args[]){

    ThreadTest1 tt=new ThreadTest1();

    Inc inc=tt.new Inc();

    Dec dec=tt.new Dec();

    for(int i=0;i<2;i++){

    Thread t=new Thread(inc);

    t.start();

    t=new Thread(dec);

    t.start();

    }

    }

    private synchronized void inc(){

    j++;

    System.out.println(Thread.currentThread().getName()+"-inc:"+j);

    }

    private synchronized void dec(){

    j--;

    System.out.println(Thread.currentThread().getName()+"-dec:"+j);

    }

    class Inc implements Runnable{

    public void run(){

    for(int i=0;i<100;i++){

    inc();

    }

    }

    }

    class Dec implements Runnable{

    public void run(){

    for(int i=0;i<100;i++){

    dec();

    }

    }

    }

    }
 


来源:http://www.002pc.com/master/College/Language/Java/2009-07-10/10001.html

收藏到:

关于《一道java面试笔试题》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='92' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='92' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td