java线程暂停与恢复suspend和resume

通过suspend()函数,可使线程进入停滞状态。通过suspend()使线程进入停滞状态后,除非收到resume()消息,否则该线程不会变回可执行状态。当调用suspend()函数后,线程不会释放它的“钥匙”。

在开启子线程后立即让他挂起,直到执行了Resume()后恢复线程的执行。注意如果在线程没有挂起时去调用Resume()方法会出现异常,所有使用这样的方法进行线程线程同步已经不推荐使用了

  1. class Program  
  2. {  
  3.     private static Thread subthread ;  
  4.     private static string name ="";  
  5.     static void Main(string[] args)  
  6.     {  
  7.         subthread = new Thread(new ThreadStart(GetShow));  
  8.         subthread.IsBackground = false;  
  9.         subthread.Name = "子线程";  
  10.         subthread.Start();   //开启线程  
  11.         subthread.Suspend(); //挂起  
  12.         Console.WriteLine(subthread.Name + "挂起");  
  13.         Console.WriteLine("{0}后台线程", Thread.CurrentThread.Name+Thread.CurrentThread.IsBackground+",结束");  
  14.         subthread.Resume();  //执行  
  15.         Console.WriteLine("主线程结束");  
  16.     }  
  17.     static void GetShow()  
  18.     {  
  19.         Console.WriteLine("输入姓名:");  
  20.         name = Console.ReadLine();  
  21.         Console.WriteLine("执行");  
  22.     }  
  23. }  

java线程暂停与恢复suspend和resume_第1张图片







你可能感兴趣的:(Java语言+J2EE开发)