java线程暂停与恢复suspend和resume
2017-06-09 11:32
447 查看
通过suspend()函数,可使线程进入停滞状态。通过suspend()使线程进入停滞状态后,除非收到resume()消息,否则该线程不会变回可执行状态。当调用suspend()函数后,线程不会释放它的“钥匙”。
在开启子线程后立即让他挂起,直到执行了Resume()后恢复线程的执行。注意如果在线程没有挂起时去调用Resume()方法会出现异常,所有使用这样的方法进行线程线程同步已经不推荐使用了。
class Program
{
private static Thread subthread ;
private static string name ="";
static void Main(string[] args)
{
subthread = new Thread(new ThreadStart(GetShow));
subthread.IsBackground = false;
subthread.Name = "子线程";
subthread.Start(); //开启线程
subthread.Suspend(); //挂起
Console.WriteLine(subthread.Name + "挂起");
Console.WriteLine("{0}后台线程", Thread.CurrentThread.Name+Thread.CurrentThread.IsBackground+",结束");
subthread.Resume(); //执行
Console.WriteLine("主线程结束");
}
static void GetShow()
{
Console.WriteLine("输入姓名:");
name = Console.ReadLine();
Console.WriteLine("执行");
}
}
在开启子线程后立即让他挂起,直到执行了Resume()后恢复线程的执行。注意如果在线程没有挂起时去调用Resume()方法会出现异常,所有使用这样的方法进行线程线程同步已经不推荐使用了。
class Program
{
private static Thread subthread ;
private static string name ="";
static void Main(string[] args)
{
subthread = new Thread(new ThreadStart(GetShow));
subthread.IsBackground = false;
subthread.Name = "子线程";
subthread.Start(); //开启线程
subthread.Suspend(); //挂起
Console.WriteLine(subthread.Name + "挂起");
Console.WriteLine("{0}后台线程", Thread.CurrentThread.Name+Thread.CurrentThread.IsBackground+",结束");
subthread.Resume(); //执行
Console.WriteLine("主线程结束");
}
static void GetShow()
{
Console.WriteLine("输入姓名:");
name = Console.ReadLine();
Console.WriteLine("执行");
}
}
相关文章推荐
- java线程的暂停和恢复 suspend 和resume
- 暂停线程suspend()和恢复线程resume()
- java多线程suspend、resume暂停与恢复线程
- JAVA多线程之线程的挂起与恢复(suspend方法与resume方法)
- Java多线程之线程的挂起与恢复(Suspend/Resume)
- Java中的线程Thread方法之---suspend()和resume()
- Java中的线程Thread方法之---suspend()和resume()
- Java线程优先级和线程暂停恢复的问题
- 为什么java线程不推荐调用stop,suspend,resume方法
- Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
- Java中的线程Thread方法之---suspend()和resume()
- Java中的线程Thread方法之---suspend()和resume()
- java 线程Thread方法之suspend()和resume()
- java线程(暂停、恢复、结束)前引
- Java线程同步阻塞, sleep(), suspend(), resume(), yield(), wait(), notify()
- 这几天做一个小程序需要用到线程的暂停与恢复 ,搞来搞去用Thread.Suspend和Thread.Resume总达不到想要的结果。后来百度一下 总结写了一个方法,共享一下 ~~~~~~~~~~
- Android中的java层的线程暂停和恢复实现
- Java中的线程Thread方法之suspend()和resume()
- Java中的线程Thread方法之---suspend()和resume()
- java中线程阻塞之sleep、suspend、join、wait、resume、notify方法解析(一)