找到相关内容 45
深入浅出多线程系列之十:Wait 和Pulse
Signaling with Wait and Pulse(等待和暂停的信号)   早期谈论过等待事件句柄(调用Wait的线程在没有收到另一个线程的通知前会一直阻塞)。 Monitor借助它的静态方法Wait,Pulse,PulseAll提供了一个更给力的信号构造,使用这些方法和lock语句,你可以自己实现AutoResetEvent,ManualResetEvent和Semaphore
http://cyqdata.com/cnblogs/article-detail-38713 
深入浅出多线程系列之九:Interlocked
在大多数计算机上,增加变量操作不是一个原子操作,需要执行下列步骤: 1.       将实例变量中的值加载到寄存器中。 2.       增加或减少该值。 3.       在实例变量中存储该值。   在多线
http://cyqdata.com/cnblogs/article-detail-38587 
浅解c#多线程读写锁(续)
   上一章我们讨论到了解决方案,本文着重讨论一下该方案的实现.    一. 排它锁类的实现:        我们实现一个类TimeSpanWaitor,用它来控制排它锁的获取和释放,其实该类的实现的目的很简单,那就是实现一个方法,该方法接受一个时间片段和一个函数回调(该函数返回bool)的参数,该
http://cyqdata.com/cnblogs/article-detail-38575 
深入浅出多线程系列之八:内存栅栏和volatile 关键字
以前我们说过在一些简单的例子中,比如为一个字段赋值或递增该字段,我们需要对线程进行同步, 虽然lock可以满足我们的需要,但是一个竞争锁一定会导致阻塞,然后忍受线程上下文切换和调度的开销,在一些高并发和性能比较关键的地方,这些是不能忍受的。 .net framework 提供了非阻塞同步构造,为一些简单的操作提高了性能,它甚至都没有阻塞,暂停,和等待线程。   Memory Barrie
http://cyqdata.com/cnblogs/article-detail-38521 
深入浅出多线程系列之七:4种定时器
在Framework中存在着4种定时器:其中分为两类, 多线程计时器 1:System.Threading.Timer 2:System.Timers.Timer   特殊目的的单线程计时器: 1:System.Windows.Forms.Timer(Windows Forms Timer) 2:System.Windows.Threading.DispatcherTimer(WPF t
http://cyqdata.com/cnblogs/article-detail-38401 
一个菜鸟写的多线程删除文件的代码,大家给点意见
公司图片服务器某个盘今天又满了,每次都是用一个控制台程序去删文件,我DOS命令不熟,今天突发奇想用上多线程是不是会快一些呢?然后就写了些代码,本菜鸟接触c#2年多工作1年多。代码是一个小时写完的,没有任何优化,只为实现功能,希望大家对于代码给点意见,本以为用了多线程删除的速度就会快上一点,但是与原来一个线程没什么大的变化,是不是IO瓶颈了。using System;using 
http://cyqdata.com/cnblogs/article-detail-38275 
浅解c#多线程读写锁(一)
  最近发表过一些对c#多线程数据读写安全线的文章,有网友说都是代码不好理解,我在这里就给出我的一些解释,希望大家多多指较.这里我重复一下多线程数据读写安全的观点:多线程下的数据安全应该指的是在使用数据的生存期内它是不变的,使用数据的生存期可以是一个过程或函数,当然这里的指的数据不包含过程或函数中的局部变量,因为局部变量它本身就是线程安全的数据.   目标:确保数据在使用的生命
http://cyqdata.com/cnblogs/article-detail-38206 
原创:c#多线程读写锁
在c#中使用多线程同步是一个头痛的问题,比较经常用的是lock(object){}这种方法,但是这种方法在读多写少的时候比较浪费资源,当然c#也提供了一种读写锁,我这里只是提供一个原创读写锁的类的源代码,该类的主要目的是允许多个线程同时读,而仅允许一个线程写,而用lock是不论读写都只能一个线程运行的 有兴趣的可以看看讨论讨论,以下是源代码: public sealed class Mu
http://cyqdata.com/cnblogs/article-detail-37980 
深入浅出多线程系列之二:关于Thread的那些事
1:你可以调用线程的实例方法Join来等待一个线程的结束。例如:         public static void MainThread()        {    &nbs
http://cyqdata.com/cnblogs/article-detail-37836 
4.0中的并行计算和多线程详解(一)
并行计算部分   沿用微软的写法,System.Threading.Tasks.::.Parallel类,提供对并行循环和区域的支持。 我们会用到的方法有For,ForEach,Invoke。   一、简单使用   首先我们初始化一个List用于循环,这里我们循环10次。(后面的代码都会按这个标准进行循环) Code       &n
http://cyqdata.com/cnblogs/article-detail-37793 
深入浅出多线程系列之一:简单的Thread
CLR和操作系统会自动的为应用程序创建一个线程,这个线程叫做主线程(main Thread) 如果要创建一个新的线程,可以使用Thread类。下面是一个简单的例子: class ThreadTest{  static void Main()  {    Thread t&nbs
http://cyqdata.com/cnblogs/article-detail-37732 
【ASP.net文档】用C#实现HTTP协议下的多线程文件传输
很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历,这些软件的使用可以大大加速互联网上文件的传输速度,减少文件传输的时间。这些软件为什么有如此大的魔力呢?其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序,也能够快速的在互联网上下载文件,那一定是非常愉快的事情。下面我就讲一讲如何利用C#语言编写一个支持多线程下载文件的程序,你会看到利用C#语言编写网
http://cyqdata.com/cnblogs/article-detail-37427 
多线程:C#.NET中使用BackgroundWorker在模态对话框中显示进度条
我们使用C#.NET编写WinForm程序时,有时候为了实现在模态对话框中实时显示后台操作的进度,这个时候需要借助于多线程操作在子窗体中显示进度条状态,在父窗体中进行后台操作。你可以在Thread类中自己创建两个线程以完成这个操作,不过C#.NET提供了BackgroundWorker对象可以帮助我们非常方便地来实现这个过程。有关Backgroundworker对象的时候我在“C#遍历
http://cyqdata.com/cnblogs/article-detail-37338 
Java Thread 多线程理论 目录索引
线程的概述 线程和进程      进程的独立性、动态性、并发性 进程的特征 并发和并行 多线程的优势 创建、启动线程 线程的实现方式      继承Thread和实现Runnable接口创建线程的区别      2种方式优缺点 线程的生命周期 线程的状态   
http://cyqdata.com/cnblogs/article-detail-36995 
多线程并发测试类库
     WEB项目中除了单元测试,还经常需要多线程测试一个方法是否存在并发问题,或者是否有性能问题。每次都要写测试代码总是一件很累的事情。于是写了这一个多线程测试的类库,用来进行快速的多线程并发测试。       多线程并发测试时,需要等所有线程测试结束后通知主线程,主线程才能进行下一步动作,这里主要用到
http://cyqdata.com/cnblogs/article-detail-36373 
一步一步学习C#多线程知识----2、ThreadPool(1)起始
写在前面: 学习一种技术,我都要先搞清楚,1、我为什么要学习和使用它,它有哪些好处?2、它适用什么场合?3、如何使用它。这是我从我大学的导师那里学来的(在这里向我的导师致敬~~),我觉得很受用。之所以把如何使用放在最后,是因为在你没有搞清楚它的利弊和适用场合之前,如果上来就学习,即使学会了,在使用的过程中带来隐患。所以我会按照这个顺序来写,如果大家认为有道理的话,可以借鉴借鉴~~呵呵 1、为什
http://cyqdata.com/cnblogs/article-detail-35918 
一步一步学习C#中的多线程 --- 1、初识线程(3)--前台线程和后台线程
1、前台线程和后台线程的基本概念 MSDN上对前台线程和后台线程有如下描述: http://msdn.microsoft.com/zh-cn/library/h339syd0(VS.80).aspx     前台线程和后台线程的主要区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在
http://cyqdata.com/cnblogs/article-detail-35324 
一步一步学习C#中的多线程 --- 1、初识线程(2)--给线程传递参数
给线程传递参数的三种方法 1、一种方式是使用ParameterizedThreadStart委托参数的Thread构造函数。参看如下代码:   1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: using System.Th
http://cyqdata.com/cnblogs/article-detail-35230 
Silverlight实用窍门序列:26.Silverlight多线程技术ThreadPool的使用【附带源码实例】
        在实际项目的多线程操作中我们用得最多的应该是ThreadPool线程池了,它可以非常方便的在线程池中使用线程来处理耗时的函数,且当函数操作完成之后会释放该线程以待下一次使用,而不用像Thread线程处理那么麻烦。        在每个应用程序中
http://cyqdata.com/cnblogs/article-detail-32777 
你知道吗?多个类多线程环境下静态构造函数的执行顺序
调用A a=new A()请问输出是什么?为什么? class A { static A() { Stopwatch sw = new Stopwatch(); sw.Start(); XTrace.WriteLine("A1"); Thread.Sleep(3000); //B b = n
http://cyqdata.com/cnblogs/article-detail-32728