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 进程间多个线程同步,或多个进程的同步


    ==线程==
  • 相关阅读:
    PAT A1094 The Largest Generation (25 分)——树的bfs遍历
    PAT A1055 The World's Richest (25 分)——排序
    PAT A1052 Linked List Sorting (25 分)——链表,排序
    PAT A1076 Forwards on Weibo (30 分)——图的bfs
    辅导员
    辅导员面试
    C程序设计
    Excel VBA 基本概念
    Excel函数
    导入excel表的数据到数据库ssh
  • 原文地址:https://www.cnblogs.com/ant520/p/1015815.html
Copyright © 2011-2022 走看看