Thread_线程的终止和睡眠

  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. Program obj = new Program();
  6. obj.DisplayThread();
  7. Console.ReadLine();
  8. }
  9. public void DisplayThread()
  10. {
  11. Thread thread1 = new Thread(Thread1);
  12. Thread thread2 = new Thread(Thread2);
  13. thread1.Start();
  14. thread2.Start();
  15. }
  16. public void Thread1()
  17. {
  18. for (int i = 0; i < 100; i++)
  19. {
  20. Console.WriteLine("我是线程一:"+i);
  21. if (i>30)
  22. {
  23. Thread.CurrentThread.Abort();
  24. }
  25. }
  26. }//Thread1_End;
  27. public void Thread2()
  28. {
  29. for (int i = 0; i < 2; i++)
  30. {
  31. string str = " 你好 ,请休息下崽继续玩游戏";
  32. foreach (char item in str)
  33. {
  34. Console.Write(item);
  35. Thread.Sleep(500);
  36. }
  37. }
  38. }
  39. }

来自为知笔记(Wiz)

时间: 2024-08-28 05:34:26

Thread_线程的终止和睡眠的相关文章

线程的终止stop与线程的中断interrupted

线程除了运行完毕,自动进入死亡状态,也可以手动进行停止,Thread类也提供了2个类方法来进行线程的停止. 一.stop 如图所示,stop方法已经被标记为过时的,不推荐的.因为这这个方法太过于暴力,会立即杀死进程,导致数据不能同步,带来很难排查的错误. 下面是一段造成错误信息的代码: 1 public class StopThreadUnsafe { 2 public static User u = new User(); 3 4 public static class User { 5 pr

并发基础(九) java线程的终止与中断

1.简单了解一下:为何不赞成使用 Thread.stop.Thread.suspend 和 Thread.resume? ??suspend .resume.stop方法分别完成了线程的暂停.恢复.终止的工作.不建议使用原因:是因为这三个方法带来的副作用,如suspend( )方法,调用后,线程就会一直占用资源睡眠,直到调用resume( )恢复后,才可以运行.这样很容易引发死锁.同样,stop( )方法在终结一个线程时不会保证线程的资源正常释放,因此会导致程序可能工作在不确定的状态下. ??线

等待线程的终止

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

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

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("子线程被挂起而暂停"); i

java 线程的终止与线程中断

关于线程终止: 1.一般来讲线程在执行完毕后就会进入死亡状态,那该线程自然就终止了. 2.一些服务端的程序,可能在业务上需要,常驻系统.它本身是一个无穷的循环,用于提供服务.那对于这种线程我们该如何结束它呢. 一.线程的终止 在Thread类中JDK给我们提供了一个终止线程的方法stop(); 该方法一经调用就会立即终止该线程,并立即释放对象锁.如果当一个线程执行一半业务而调用了该方法,可能就会产生数据不一致问题. 数据一致性:同一时间点,你在节点A中获取到key1的值与在节点B中获取到key1

Java 线程的终止-interrupt

Java线程的终止--interrupt 取消/关闭的场景 我们知道,通过线程的start方法启动一个线程后,线程开始执行run方法,run方法运行结束后线程退出,那为什么还需要结束一个线程呢?有多种情况,比如说: 很多线程的运行模式是死循环,比如在生产者/消费者模式中,消费者主体就是一个死循环,它不停的从队列中接受任务,执行任务,在停止程序时,我们需要一种"优雅"的方法以关闭该线程. 在一些图形用户界面程序中,线程是用户启动的,完成一些任务,比如从远程服务器上下载一个文件,在下载过程

java 多线程-线程的终止

终止线程的两种方式:线程正常执行完毕外部干涉加入标识(在为真的情况下才执行线程)不要使用stop和destroy方法 public class hh implements Runnable { //加入标识,标记线程体是否可以运行 private boolean flag=true; private String name; public hh(String name) { this.name=name; } public void run() { int i=0; //关联标识,true-->

Delphi线程的终止

当线程对象的Execute()执行完毕的时候,我们就认为此线程终止了.这时候,它会调用Delphi的一个标准例程EndThread(),这个例程再调用API函数ExitThread().由ExitThread()来清除线程所占用的栈. 当结束使用TThread对象的时候,应该确保已经把这个Object Pascal对象从内存中清除了.这才能确保所有内存占有都释放掉,尽管在进程终止时候会自动清除所有的线程对象,但是及时清除已经不再使用的对象,可以使内存的使用效率提高.利用将FreeOnTermin

线程的终止

1.Thread的终止 首先,不建议使用Thread类的stop方法,因为会强制释放线程使用的资源,例如锁.文件等,会出现令人意想不到的问题.Java中Thread类提供了interupt方法来设置线程的中断标志位使线程停止,但是interrupt方法并不是万能的,只能在有限的情况下中断线程: 线程处于等待.条件等待时.例如在线程中调用了lock.wait().Thread.sleep()等方法 nio中会能够检测中断标志位的方法 在线程中不断检测了中断标志位.例如在while循环中调用isIn