• 线程同步的几种方式


    关于线程同步的几种方法:

     一、volatile关键字

      volatile是最简单的一种同步方法,当然简单是要付出代价的。它只能在变量一级做同步,volatile的含义就是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我。(【转自www.bitsCN.com 】)因此,当多线程同时访问该变量时,都将直接操作主存,从本质上做到了变量共享。

    public class A

    {

    private volatile int _i;

    public int I

    {

    get { return _i; }

    set { _i = value; }

    }

    }

     二、lock关键字

      lock是一种比较好用的简单的线程同步方式,它是通过为给定对象获取互斥锁来实现同步的。它可以保证当一个线程在关键代码段的时候,另一个线程不会进来,它只能等待,等到那个线程对象被释放,也就是说线程出了临界区。用法:

    public void Function() 

    {

    object lockThis = new object (); 

    lock (lockThis)

    {

    // Access thread-sensitive resources. 

    }

    }

    三、使用线程安全类(Concurrent)

    这些类可以单线程写入,多线程读取。有ConcurrentBagConcurrentSetConcurrentDictionary等等。

    四、使用await async关键字来控制执行顺序。

  • 相关阅读:
    C++计算器项目的初始部分
    视频教程自学计划
    1001.A+B Format (20)解题描述
    成为理想的自己
    Sample Join Analysis
    Sample MultipleFileWordcount CombineFileInputFormat
    FileOutputFormat
    Combine small files to Sequence file
    FileInputFormat
    Sample: Write And Read data from HDFS with java API
  • 原文地址:https://www.cnblogs.com/zhoushiya/p/12107590.html
Copyright © 2020-2023  润新知