10 2020 档案
location之alias浅析
摘要:在一个server中,如果需要根据前缀访问不同文件夹下的文件,则可以使用alias来设置。如下代码: server { listen 9085; server_name 127.0.0.1; absolute_redirect off; #server_name_in_redirect off; # 阅读全文
posted @ 2020-10-28 15:46 F风 阅读(2367) 评论(0) 推荐(1)
Semaphore和SemaphoreSlim实现并发同步
摘要:Semaphore,中文译为信号灯。在C#中,它可以允许指定数量的线程同时访问共享资源,而其他的线程必须等待。 即现在有5个线程同时运行,但Semaphore指定2个线程可以同时访问某一共享资源。当执行Semaphore.Wait()时,只有2个线程可以同时进入访问共享资源,而其他三个线程则阻塞等待 阅读全文
posted @ 2020-10-22 17:25 F风 阅读(623) 评论(0) 推荐(0)
Barrier实现并发同步
摘要:Barrier,中文被译为屏障。在C#中,可以用来实现多任务在多阶段中协同工作。通俗来讲,就是多个线程在执行到某个被共同指定步骤(即Barrier.SignalAndWait())的时候,就像遇到了屏障一样,必须等待其他还未执行到该步骤的线程。如果每个线程都执行到了该步骤,则大家又继续执行各自的逻辑 阅读全文
posted @ 2020-10-22 15:20 F风 阅读(1031) 评论(0) 推荐(0)
CountdownEvent实现并发同步
摘要:CountdownEvent,该类包含一个需要被初始化的计数器数字,如果该计数器数字归零之后,就会释放被阻塞的线程。 CountdownEvent.Signal()执行后,计数器会自减1; CountdownEvent.Wait()执行后,如果计数器归零,则会立即释放该线程;否则,就会阻塞当前线程。 阅读全文
posted @ 2020-10-22 10:01 F风 阅读(316) 评论(0) 推荐(0)
AutoResetEvent实现并发同步
摘要:AutoResetEvent,继承自EventWaitHandle,用在多线程中保护对共享资源的访问,保证每次只能有一个线程对共享资源进行访问。 AutoResetEvent最特别之处,在于每次保证只有一个线程执行逻辑,其他的线程只能等待。 AutoResetEvent通过信号量来阻塞和释放线程。其 阅读全文
posted @ 2020-10-21 16:59 F风 阅读(194) 评论(0) 推荐(0)
TrieTree树
摘要:昨天看到一篇介绍TrieTree树的文章,感觉还不错的。于是小小研究了一下,并用C#实现了相关代码。 TrieTree树提供对字符的存储和遍历,可以用来查询词汇出现的频率或实现其他功能,速度还挺快。最特色的是,如果有相同前缀词的字符串,则它们的前缀部分可以被共享存储。 TrieTree类是一个单例类 阅读全文
posted @ 2020-10-20 11:10 F风 阅读(192) 评论(0) 推荐(0)