java学习之进程和线程

    技术2025-08-11  11

     

     进程和线程

     

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

     

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

     

     

    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();

    }

    }

    最新回复(0)