首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

高分求解:线程间怎么通信

2012-08-17 
高分求解:线程间如何通信?线程间如何通信呢,有人给答案说是:临界区、互斥量、信号量、事件这几个该怎么理解呢

高分求解:线程间如何通信?
线程间如何通信呢,有人给答案说是:临界区、互斥量、信号量、事件
这几个该怎么理解呢,我还是很糊涂,希望看到相关源代码才好理解,求高手帮助,谁能帮我让我明白?

[解决办法]
还有用文件的呢!!
[解决办法]

C# code
//令牌环object token = new object();//共享资源 List<string> listString = new List<string>();Thread tr1 = new Thread(new ThreadStart(prints));Thread tr2 = new Thread(new ThreadStart(prints)); void prints()        {            while (true)            {                if (listString.Count > 0)                {                    //进入临界区                    Monitor.Enter(token);                    Console.Write(listString[0]);                    listString.RemoveAt(0);                    //推出临界区                    Monitor.Exit(token);                }                        }        }
[解决办法]
这是最简单的,至于互斥量和信号量思路和这个一样,也是有了权限才能进去临界区操作共享资源,在你操作的时候由于抢占了权限,其他线程就无法操作共享资源。
[解决办法]
用 bool Monitor.TryEnter(token) 可以当得不到资源的时候就放弃

[解决办法]
找本Windows编程的书看看吧
[解决办法]
临界区、互斥量、信号量、事件 
这是实现线程同步的方式。
[解决办法]
你最好先把线成的同步和通信的概念区分一下。貌似你混淆了

热点排行