⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex.java

📁 实例精华
💻 JAVA
字号:
package untitled1;

public class Ex
{

        public static void main(String[] args)
        {
        //	new Test().start();
        //	new Test().start();
            Test t = new Test();

            new Thread(t).start();


                /*这里如果不使用sleep方法,则在第一个线程起动后,main线程还是会继续执行,这样flag就会被设置为true,
                这样只会执行flag为true时的线程,而为false时的代码将不会被执行*/
            try {

                Thread.sleep(30);

            }
            catch (Exception ex) {

                ex.printStackTrace();
            }



            t.flag=true;
            new Thread(t).start();
//	    new Thread(t).start();
//	    new Thread(t).start();


        }
}

class Test implements Runnable// extends Thread
{
    int count=50;
    boolean flag=false;
    Object obj = new Object();
    public void run()
    {

      if(flag==false)
      {
              while(true)

                go();
      }
      else
      {


        while(true)
        {
                synchronized(obj)
                {
                    synchronized(this)
                    {

                        if (count > 0) {
                            try {

                                Thread.sleep(30);

                            } catch (Exception ex) {

                                ex.printStackTrace();
                            }

                            System.out.println("obj剩余票数" + count--);

                        }
                    }

                }
        }

}

        }

        public synchronized void go()
        {

            synchronized(obj)
            {
                if (count > 0) {
                    try {

                        Thread.sleep(30);

                    } catch (Exception ex) {

                        ex.printStackTrace();
                    }

                    System.out.println("this剩余票数" + count--);
                }
            }
        }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -