当前位置: 移动技术网 > IT编程>开发语言>.net > c# 锁 Interlocked 操作

c# 锁 Interlocked 操作

2018年09月21日  | 移动技术网IT编程  | 我要评论

光彩花艺,库库鲁的宝箱,末世小说排行榜

    //定义原子变量


int mituxint = -1; //原子级别+1值,如果>=0,说明当前锁为空,可以执行,避免重复执行 if (interlocked.increment(ref mituxint) <= 0) { if (_serverthread == null || (_serverthread.isalive == false)) { autoconnect = isautoconn; _serverthread = new thread(new threadstart(threadconnectserver)); _serverthread.isbackground = true; _serverthread.start(); } interlocked.exchange(ref mituxint, -1); }

 

 

 

 

int lock2=0;

private void funcmustdo()
        {
            //交换lock2 和1,返回lock2以前的值,这个和lock不一样的是,可以加其他条件
            while (interlocked.exchange(ref lock2, 1) != 0)
            {

            }
            //啪嗒啪嗒执行操作
//置0 thread.volatilewrite(ref lock2, 0);//thread.volatilewrite执行一个原子写入操作,它的每次执行都具有释放语义 }

  

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网