您的位置:首页 > 编程语言 > Java开发

java学习之进程和线程

2011-02-14 21:42 225 查看
 

 进程和线程

 

在多任务系统中,每个独立执行的程序称为进程

 

一个进程又可以包含一个或多个线程,一个线程就是一个程序内部的执行线索,如果要 一程序中实现多段代码同时交替运行,就需产生多个线程,并指定每个程序所要运行的程序代码段

 

 

Thread.currentThread().getName();  返回当前线程对象

 

new Thread().start(): start() 开始启用线程,调用线程的run()方法;

 

用Thread类创建线程

 

要将一段代码放在一个新的线程上执行,该代码应该在Thread类的子类的run()函数中

 

run()方法执行完毕,该线程结束

 

Runnable接口 : 实现该接口的类能作为参数传递给Thread()类

 

Synchronized(){}  同步代码块  如果 Synchronized  放在函数修饰前面,则为同步函数

 

 

如:

 

class producer implements Runnable

{

  Q q;

  public producer(Q q)

  {

    this.q=q;

  }

  public void run()

  {

    int i=0;

    while(true)

    {

     synchronized(q)

     {

     if(bFull)

      wait();

      if(i==0)

      {

        q.name="zhangsan";

        try{Thread.sleep(1);}catch(Exception e){}

        q.sex="male";

      }

      else

      {

        q.name="lisi";

        q.sex="female";

      }

      notify();

    }

      i=(i+1)%2;

    }

  }

}

class Consumer implements Runnable

{

   Q q;

   public Consumer(Q q)

   {

     this.q=q;

   }

   public void run()

   {

      while(true)

      {

       synchronized (q)

       {

       if(!q.bFull)

          wait();

        System.out.println(q.name);

        System.out.println(":"+q.sex);

        notify();

        }

      }

   } 

}

class Q

{

  String name="unknown";

  String sex="unknown";

}

class ThreadComunation

{

public static void main(String [] args)

{

Q q= new Q();

new Thread(new producer(q)).start();

new Thread(new Consumer(q)) .start();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息