挂起起线程与终止线程的区别

Program1 p1 = new Program1();

Thread th = new Thread(new ThreadStart(p1.ThreadRunMethord));//创建一个新的子线程

if (th.ThreadState != ThreadState.Running)//判断子线程未开始时运行

{

th.Start();//启动子线程

}

Thread.Sleep(1000);//主线程休眠1秒钟

Console.WriteLine("子线程被挂起而暂停");

if (th.ThreadState == ThreadState.Running)//若子线程为运行状态

{

th.Suspend();//线程被挂起而暂停

}

if (th.ThreadState == ThreadState.Suspended)//若子线程为挂起状态

{

th.Resume();//恢复子线程而继续执行

}

Console.WriteLine("恢复运行已挂起的子线程");//输出子线程已被恢复执行的信息

Console.ReadLine();

public  void ThreadRunMethord()//子线程执行的方法

{

Console.WriteLine("子线程开始运行....");

}

Program1 p1 = new Program1();

Thread th = new Thread(new ThreadStart(p1.ThreadRunMethord));//创建一个新的子线程

if (th.ThreadState != ThreadState.Running)//判断子线程未开始时运行

{

th.Start();//启动子线程

}

Thread.Sleep(1000);//主线程休眠1秒钟

Console.WriteLine("子线程被挂起而暂停");

if (th.ThreadState == ThreadState.Running)//若子线程为运行状态

{

th.Abort();//子线程运行终止

}

if (th.ThreadState == ThreadState.Stopped)//若子线程已经停止

{

Console.WriteLine("线程已经终止");//输出子线程终止的信息

}

Console.ReadLine();

public  void ThreadRunMethord()//子线程执行的方法

{

Console.WriteLine("子线程开始运行....");

}

时间: 2024-08-29 02:53:44

挂起起线程与终止线程的区别的相关文章

七. 多线程编程11.线程的挂起、恢复和终止

有时,线程的挂起是很有用的.例如,一个独立的线程可以用来显示当日的时间.如果用户不希望用时钟,线程被挂起.在任何情形下,挂起线程是很简单的,一旦挂起,重新启动线程也是一件简单的事. 挂起,终止和恢复线程机制在Java 2和早期版本中有所不同.尽管你运用Java 2的途径编写代码,你仍需了解这些操作在早期Java环境下是如何完成的.例如,你也许需要更新或维护老的代码.你也需要了解为什么Java 2会有这样的变化.因为这些原因,下面内容描述了执行线程控制的原始方法,接着是Java 2的方法. Jav

Java知多少(65)线程的挂起、恢复和终止

有时,线程的挂起是很有用的.例如,一个独立的线程可以用来显示当日的时间.如果用户不希望用时钟,线程被挂起.在任何情形下,挂起线程是很简单的,一旦挂起,重新启动线程也是一件简单的事. 挂起,终止和恢复线程机制在Java 2和早期版本中有所不同.尽管你运用Java 2的途径编写代码,你仍需了解这些操作在早期Java环境下是如何完成的.例如,你也许需要更新或维护老的代码.你也需要了解为什么Java 2会有这样的变化.因为这些原因,下面内容描述了执行线程控制的原始方法,接着是Java 2的方法. Jav

Linux之线程、线程控制、线程属性

一.整体大纲 二.线程相关 1. 什么是线程    LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下) 进程:独立地址空间,拥有PCB 线程:也有PCB,但没有独立的地址空间(共享) 区别:在于是否共享地址空间. 独居(进程):合租(线程). Linux下: 线程:最小的执行单位 进程:最小分配资源单位,可看成是只有一个线程的进程. 2. Linux内核线程实现原理     (1)线程实现原理 类Unix系统中,早期是没有“线程”概念的,80年代才

delphi线程的创建、挂起、激活与终止(用绘图做实验,简单又好用)

unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls; typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;Button3: TButton;Button4: TButton;procedure Button1Click(Sender: TObject

转: 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17095733 挂起和恢复线程     Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的.如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件--其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁.另外,在长时间计算期间挂起线程也可能导致问题. 下面的代码演示了通过休眠来延缓运行

【Java并发编程】:线程挂起、恢复与终止

挂起和恢复线程     Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的.如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件--其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁.另外,在长时间计算期间挂起线程也可能导致问题. 下面的代码演示了通过休眠来延缓运行,模拟长时间运行的情况,使线程更可能在不适当的时候被挂起: public class DeprecatedSuspendRe

Java并发编程(3):线程挂起、恢复与终止的正确方法(含代码)

JAVA大数据中高级架构 2018-11-06 14:24:56挂起和恢复线程Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的.如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件--其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁.另外,在长时间计算期间挂起线程也可能导致问题. 下面的代码演示了通过休眠来延缓运行,模拟长时间运行的情况,使线程更可能在不适当的时候被挂起: publi

等待线程的终止

在一些情形下,我们必须等待线程的终止.例如,我们的程序在执行其他的任务时,必须先初始化一些必须的资源.可以使用线程来完成这些初始化任务,等待线程终止,再执行程序的其他任务. 为了达到这个目的,我们使用Thread类的join()方法.当一个线程对象的join()方法被调用时,调用它的线程将被挂起,直到这个线程对象完成它的任务. package concurrency; import java.util.Date; import java.util.concurrent.TimeUnit; pub

【java】终止线程的三种方法

有三种方法可以使终止线程. 1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止. 2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend.resume一样,也可能发生不可预料的结果). 3.  使用interrupt方法中断线程.     1. 使用退出标志终止线程 当run方法执行完后,线程就会退出.但有时run方法是永远不会结束的.如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务.在这种情况下,一般是将这些任务放在一