zoukankan      html  css  js  c++  java
  • 线程相关的概念

    1.线程同步
    ManualResetEvent

    Set()方法将状态设置为有信号
    Reset()将其设置为无信号
    WaitOne()将阻塞到其有信号为止,若调用WaitOne的时刻就是有信号的,将不会阻塞

    AutoResetEvent
    与ManualResetEvent的区别是,AutoResetEvent.WaitOne()会自动改变事件对象的状态,即AutoResetEvent.WaitOne()每执行一次,事件的状态就改变一次。有信号-->无信号;无信号-->有信号

    example:

    Code

    myResetEven.Set(),其实就相当于一个开关,如果没有执行set()方法,下面的waitOne()就等不到让它执行的通知,这样一来waitOne后面的语句也不会执行了.



    Monitor方法
    Wait() Pulse()机制用于线程间交互作用,当一个对象发出Monitor.Wait(),正在访问对象的线程将保持等待状态.直到它得到一个唤醒的信号.Monitor.Pulse()用于给等待线程发送信号.
    也就是说在Monitor.Enter()  Monitor.Exit()之间的临界区域,要释放对象上的锁并阻塞当前线程,自己处于队列中等待状态.


    Lock与Mutex区别
    Lock   进程间多个线程同步
    Mutex 进程间多个线程同步,或多个进程的同步


    ==线程==
  • 相关阅读:
    学习zabbix(一)
    学习openstack(七)
    并不对劲的bzoj3677:p3647:[APIO2014]连珠线
    并不对劲的bzoj5415:loj2718:uoj393:p4768:[NOI2018]归程
    并不对劲的bzoj5475:loj2983:p5206:[wc2019]数树
    并不对劲的多项式求ln,exp
    并不对劲的bzoj1758:p4292:[WC2010]重建计划
    (中等) UESTC 94 Bracket Sequence,线段树+括号。
    (简单) HDU 5154 Harry and Magical Computer,图论。
    (中等) UESTC 360 Another LCIS ,线段树+区间更新。
  • 原文地址:https://www.cnblogs.com/ant520/p/1015815.html
Copyright © 2011-2022 走看看