首页 软件列表

深入多线程之:深入生产者、消费者队列分析
首页

深入多线程之:深入生产者、消费者队列分析

2020-02-16 标签:深入,多线程,生产者,消费者,队列,分析,上次,使用,实现,生产,这一次,要使,wait,pulse,方法,更强,大的,版本,允许

上次我们使用AutoResetEvent实现了一个生产/消费者队列。这一次我们要使用Wait和Pulse方法来实现一个更强大的版本,它允许多个消费者,每一个消费者都在自己的线程中运行。我们使用数组来跟踪线程。Thread[] _workers;通过跟踪线程可以让我们在所有的线程都结束后再结束我们的队

首页

C语言中多维数组的内存分配和释放(malloc与free)的方法

2020-02-16 标签:c,语言,多维,数组,内存,分配,释放,malloc,free,方法,二维,m,n,空间,代码,写成,下面,实现,如下,char

如果要给二维数组(m*n)分配空间,代码可以写成下面:实现代码如下:char **a, i;// 先分配m个指针单元,注意是指针单元// 所以每个单元的大小是sizeof(char *)a = (char **) malloc(m * sizeof(char * ));// 再分配n个字符单元,//

首页

深入多线程之:双向信号与竞赛的用法分析

2020-02-16 标签:深入,多线程,双向,信号,竞赛,用法,分析,two,signaling,races,monitor,pulse,方法,重要,特性,它是,异步,执行,意味着,调用

双向信号和竞赛(Two-Way Signaling and Races) Monitor.Pulse方法的一个重要特性是它是异步执行的,这意味着调用pulse方法并不会阻塞自己等待Monitor.Pulse返回。如果任何一个线程在pulsed 对象上等待,它是不会阻塞的,换句话说,调用Monitor

首页

Javascript 垃圾收集机制介绍理解

2020-02-16 标签:javascript,垃圾,收集,机制,介绍,理解,经常,使用,的人,琢磨,并不,c,那样,需要,开发者,手动,清除,在编,程序,无需

经常使用 Javascript 的人会琢磨其垃圾收集机制,Javascript 并不像 C,C++ 那样需要开发者手动去清除垃圾,在编写 Javascript 程序是,开发者无需关心内存使用问题,所需内存分配以及无用内存(垃圾)的回收完全实现了自动管理。究其根源,主要是程序收集那些不再使用的变量,并

深入多线程之:解析线程的交会(Thread Rendezvous)详解
首页

深入多线程之:解析线程的交会(Thread Rendezvous)详解

2020-02-16 标签:深入,多线程,解析,线程,交会,thread,rendezvous,详解,在上,文章,使用,wait,pulse,实现,countdown,接下来,刚刚,写的

在上篇文章中我们使用了Wait和Pulse 实现了Countdown接下来我们可以使用刚刚写的Countdown 类来实现两个线程的交会。实现代码如下:class Rendezvous{static object _locker = new object();static Countdown _co

判断给定的图是不是有向无环图实例代码
首页

判断给定的图是不是有向无环图实例代码

2020-02-16 标签:判断,给定,是不是,实例,代码,实现,如下,include,iostream,list,stack,using,n,amespace,std,class,graph,int

实现代码如下:#include#include#includeusing namespace std;class Graph { int vertexNum; list *adjacents;public: Graph(int _vertexNum) {vertexNum = _vertexNum;

深入多线程之:Reader与Write Locks(读写锁)的使用详解
首页

深入多线程之:Reader与Write Locks(读写锁)的使用详解

2020-02-16 标签:深入,多线程,reader,write,locks,读写,使用,详解,线程,安全,经常的,需求,允许,并发,不允,例如,文件

线程安全的一个很经常的需求是允许并发读,但是不允许并发写,例如对于文件就是这样的。ReaderWriterLockSlim 在.net framework 3.5的时候就提供了,它是用来代替以前的”fat”版本的”ReaderWriterLock”这两个类,有两种基本的锁----一个读锁,一个写锁。

关于System.Convert的那些事儿
首页

关于System.Convert的那些事儿

2020-02-16 标签:关于,system,convert,事儿,经常,同事,代码,bool,obj,服务器,返回,来的,n,ull,实现,如下,toboolean,true,something

经常看到同事写代码:bool? obj=从服务器返回来的值,可能为null。实现代码如下:if(obj !=null 这代表上面的代码可以简化为实现代码如下:if(Convert.ToBoolean(obj)){//Do something.}顺带提一下,下面的代码会跑出异常.Convert.ToC

基于Silverlight打印的使用详解,是否为微软的Bug问题
首页

基于Silverlight打印的使用详解,是否为微软的Bug问题

2020-02-16 标签:基于,silverlight,打印,使用,详解,是否,微软,bug,问题,新建,应用程序,名称,slstudy,建好,如下,用户,控件

1:新建Silverlight4 应用程序,名称为SLStudy。建好后如下:2:在SLStudy下新建Silverlight用户控件,Print1.xaml作为要打印的控件。在Print1.xaml里面添加代码为:实现代码如下:这是第一个例子,简单的按钮3:已经建立好了要打印的内容了,这里打印的是

浅谈Silverlight 跨线程的使用详解
首页

浅谈Silverlight 跨线程的使用详解

2020-02-16 标签:浅谈,silverlight,线程,使用,详解,新建,sl,应用程序,mainpage,添加,代码,button,x,name,btnthread,click,thread

新建SL4 应用程序,在MainPage下添加代码:Thread1后台代码为:实现代码如下:private void btnThread1_Click(object sender, RoutedEventArgs e){new Thread(() =>{MessageBox.Show("Hel