zoukankan      html  css  js  c++  java
  • 线程唤醒

    /*
    线程间的通信,通过对同类对象进行操作,达到对同一个对象的通信,如放入和输出,
    同时我们要进行线程同步,但是还可能有问题,所以要用一个变量控制线程是否唤醒执行。
    
    停止线程stop()已经过时,不能用了,所以如何解决呢?原理只有一种,run()方法结束。
    开启多线程,运行代码通常是循环结构,只要控制循环,就可以让run()方法结束,线程结束
    
    特殊情况:当线程处于冻结状态,线程就不会读取到标记,线程就不会结束。
    */
    
    class StopThread implements Runnable
    {
    	private boolean flag = true;
    	public synchronized void run()
    	{
    		while(flag)
    		{
    			System.out.println(Thread.currentThread().getName()+".....run");
    		}
    	}
    
    	public void changeFlag()
    	{
    		this.flag = false;
    	}
    }
    class WaitDemo 
    {
    	public static void main(String[] args) 
    	{
    		StopThread st = new StopThread();
    		Thread t1 = new Thread(st);
    		Thread t2 = new Thread(st);
    		t1.start();
    		t2.start();
    		int num = 0;
    		while(true)
    		{
    			if(num++ == 60)
    			{
    				st.changeFlag();
    				break;
    			}
    
    			System.out.println(Thread.currentThread().getName() + ":" + num);
    		}
    
    	}
    }
    

  • 相关阅读:
    Object-Oriented Programming Summary Ⅱ
    Object-Oriented Programming Summary Ⅰ
    自己查与写的批量比较bash
    C#可为空引用类型 -0007
    C#类型系统 -0006
    C#类型 -0005
    C# Main方法返回值 -0004
    C# Main方法参数 -0003
    C# Main方法 -0002
    C# Hello World -0001
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258544.html
Copyright © 2011-2022 走看看