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



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

  

user avatar   Ivony 网友的相关建议: 
      

参考C#的CancellationToken

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

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


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




  

相关话题

  如何评价华为正适配鸿蒙智能手机,面向智能手机低端市场,有望年底前上市? 
  如何评价华为发布的鸿蒙OS 2.0需要导入安卓部分SDK等功能? 
  为什么开源软件往往都支持Linux/Mac/Windows,而闭源软件往往只支持Win和Mac? 
  苹果M1芯片真香,但是未来寿命如何,多久会被市场淘汰? 
  如何建设国产操作系统生态圈? 
  为什么 Windows 比 Linux 的文件搜索慢很多? 
  深度学习底层开发对数学有哪些要求? 
  如何看待任正非透露鸿蒙是一个「短时延」系统? 
  操作系统中原子操作和锁的底层原理分别是什么?提供了哪些原子语义保证? 
  微软当年是不是用并不比苹果好的技术战胜了苹果,为什么? 

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





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利