百科问答小站 logo
百科问答小站 font logo



如何实现一个安全的thread.stop的api? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

参考C#的CancellationToken

另外,C#设计了一些不可被打断的代码位置,其中就包含finally块,这样就可以避免上面所说的释放锁的问题,因为释放锁一般都是放在finally块里面的。当程序执行到finally块时,Abort不能立即终结线程,必须等到finally块执行完成。

同样的,Thread.Abort会在目标线程引发异常,从而确保代码在try块中执行的时候,对应的finally块会被执行,这样又避开了上面所说的造成数据不一致的问题。


不过即便如此,我们有时候还是希望自己来控制被终结和打断的时机,这时候就可以用CancellationToken机制。




  

相关话题

  操作系统里面经常说的一个功能用「软件实现」还是用「硬件实现」,其本质区别是什么? 
  鸿蒙之于AOSP,是否Linux之于wine,Windows之于WSL?这么多人质疑鸿蒙说明了什么? 
  腾讯不积极开发 Linux 版微信和 QQ 是否阻碍了国内 Linux 用户群的发展? 
  如果华为自己做手机操作系统,你对这个操作系统有什么建议? 
  Windows NT 内核与 Linux 内核相比哪个更安全? 
  当我们在电脑按下ctrl+c,剪切板储存了哪些信息? 
  如何看待长征七号发射用国产麒麟系统替代windows? 
  程序在编译的时候,会转换成汇编,然后是机器指令,那么运行的时候,操作系统充当什么呢? 
  为什么每款 ARM 电脑都需要专门为它编译的内核,而 x86 的可以通用? 
  操作系统虚拟地址转换为物理地址是如何避免冲突的? 

前一个讨论
驼峰命名法该如何解决某些单词需要大写的问题?
下一个讨论
为什么飞机比船/潜艇快了一个数量级以上,而最快的鸟比最快的鱼快不了多少?





© 2025-04-10 - tinynew.org. All Rights Reserved.
© 2025-04-10 - tinynew.org. 保留所有权利