• C# Thread


    比较好的博客文章:

    https://www.cnblogs.com/wyt007/p/9486752.html

    知识点:

    1. 创建线程
    2. 暂停线程
    3. 线程等待
    4. 终止线程
    5. 监测线程状态
    6. 线程优先级
    7. 前台线程和后台线程
    8. 向线程传递参数
    9. 使用C#中的lock关键字
    10. 使用Monitor类锁定资源
    11. 处理异常
    12. 线程同步-执行基本的原子操作(Interlocked)
    13. 线程同步-使用Mutex类
    14. 线程同步-使用SemaphoreSlim类
    15. 线程同步-使用AutoResetEvent类
    16. 线程同步-使用ManualResetEventSlim类
    17. 线程同步-使用CountdownEvent类
    18. 线程同步-使用Barrier类
    19. 线程同步-使用ReaderWriterLockSlim类
    20. 线程同步-使用SpinWait类
    21. 使用线程池-在线程池中调用委托
    22. 使用线程池-向线程池中放入异步操作
    23. 使用线程池-线程池与并行度
    24. 使用线程池-实现一个取消选项
    25. 使用线程池-在线程池中使用等待事件处理器及超时
    26. 使用线程池-使用计时器
    27. 使用线程池-使用BackgroundWorker组件
    28. 使用任务并行库-创建任务
    29. 使用任务并行库-使用任务执行基本的操作
    30. 使用任务并行库-组合任务
    31. 使用任务并行库-将APM模式转换成任务
    32. 使用任务并行库-将EAP模式转换成任务
    33. 使用任务并行库-实现取消选项
    34. 使用任务并行库-处理任务中的异常+
    35. 使用任务并行库-并行运行任务
    36. 使用任务并行库-使用TaskScheduler配置任务的执行
    37. 处理问题:线程死锁状态下处理

    在解释死锁如何发生以及如何阻止死锁的过程中,你似乎遇到了问题。

    当两个( 最小二) 线程试图获取已经被另一个锁锁定的资源的锁时,就会发生死锁。 线程 1锁定资源 1尝试获取对资源 2的锁定。 同时,线程 2对资源 2有一个锁,它尝试获取对资源 1的锁。 两个线程永远不会放弃锁,因此发生死锁。

    避免死锁的最简单方法是使用超时值。 Monitor类( system.threading.monitor ) 可以在获取锁期间设置超时。

    例子

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(Monitor.TryEnter(this, 500))
    {
    //critical section
    }
    catch (Exception ex)
    {
    }
    finally
    {
     Monitor.Exit();
    }

    Thread 类常用的属性和方法

    下表列出了 Thread 类的一些常用的 属性

    属性描述
    CurrentContext 获取线程正在其中执行的当前上下文。
    CurrentCulture 获取或设置当前线程的区域性。
    CurrentPrinciple 获取或设置线程的当前负责人(对基于角色的安全性而言)。
    CurrentThread 获取当前正在运行的线程。
    CurrentUICulture 获取或设置资源管理器使用的当前区域性以便在运行时查找区域性特定的资源。
    ExecutionContext 获取一个 ExecutionContext 对象,该对象包含有关当前线程的各种上下文的信息。
    IsAlive 获取一个值,该值指示当前线程的执行状态。
    IsBackground 获取或设置一个值,该值指示某个线程是否为后台线程。
    IsThreadPoolThread 获取一个值,该值指示线程是否属于托管线程池。
    ManagedThreadId 获取当前托管线程的唯一标识符。
    Name 获取或设置线程的名称。
    Priority 获取或设置一个值,该值指示线程的调度优先级。
    ThreadState 获取一个值,该值包含当前线程的状态。

    下表列出了 Thread 类的一些常用的 方法

  • 相关阅读:
    A Tour of Go Switch
    A Tour of Go Exercise: Fibonacci closure
    curl的简单使用
    thinkphp自动验证方法的使用
    Forbidden You don't have permission to access / on this server. You don't have permission to access /phpmyadmin/ on this server. 解决办法
    创建、删除文件夹和文件夹里的文件
    图片的copy,从一个目录复制到另一个目录
    如何把内容写入到文件
    读取文件操作
    文件打开操作
  • 原文地址:https://www.cnblogs.com/mrray/p/10774513.html
Copyright © 2020-2023  润新知