您的位置:首页 >> 编程开发 >> Java >> J2SE >> 正文
J2SE RSS
 

Java之多线程(1)

http://www.rdxx.com 05年07月24日 21:14 JR 我要投稿

关键词: 多线程 , Java , 线程

    }
}
class Q
{
    String name="陈琼";
    String sex="女";
}
class Consumer implements Runnable
{
    Q q=null;
    public Consumer(Q q)
    {
        this.q=q;
    }
    public void run()
    {
        while(true)
        {
            System.out.println(q.name + "---->" + q.sex);
        }
    }

public class ThreadCommunation
{
    public static void main(String [] args)
    {
        Q q=new Q();
        new Thread(new Producer(q)).start();
        new Thread(new Consumer(q)).start();
    }
}

这时再运行程序,可以发现结果出现了错误,这个时候可以才用前面提到的同步方法,对类Q中的代码进行同步,为了说明问题,在类Q中加入两个新方法,一个是设置,一个是取值
class Producer implements Runnable
{
    Q q=null;
    public Producer(Q q)
    {
        this.q=q;
    }
    public void run()
    {
        int i=0;
        while(true)
        {
            if(i==0)
            {
                q.put("张孝祥","男") ;
            }
            else
            {
                q.put("陈琼","女") ;
            }
            i=(i+1)%2;
        }
    }
}
class Q
{
    private String name="陈琼";
    private String sex="女";
    public synchronized void put(String name,String sex)
    {
        this.name = name ;

共21页  第1页 第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页


 
 
标签: 多线程 , Java , 线程 打印本文
 
 
  相关资讯
RSS
 
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站