线程同步的小例子(两个线程对一个List进行写操作)
来源:互联网 发布:淘宝怎么一键发布宝贝 编辑:程序博客网 时间:2024/05/20 07:16
这个只是一个并发操作,还未实现真正的同步,如同在经过同一个地点时,一个是从高架上走的,一个是从路面走的
using System;
using System.Collections.Generic;using System.Linq;
using System.Text;
using System.Threading;
namespace ThreadSynchronization
{
class Program
{
static Thread t1 = new Thread(write1);
static Thread t2 = new Thread(write2);
static List<int> list = new List<int>();
private static void write1()
{
Monitor.Enter(list); //使用Monitor时,最后要手动释放list
try
{
//lock (list) //lock在执行完后会自动释放掉
//{
for (int i = 0; i < 10; i++)
{
list.Add(i);
}
foreach (int i in list)
{
Console.WriteLine("ThreadOne:{0}", i);
Thread.Sleep(100);
}
}
finally
{
Monitor.Exit(list);
}
//}
}
private static void write2()
{
Monitor.Enter(list);
try
{
//lock (list)
//{
for (int i = 20; i < 30; i++)
{
list.Add(i);
}
foreach (int i in list)
{
Console.WriteLine("ThreadTwo:{0}", i);
Thread.Sleep(100);
}
}
finally
{
Monitor.Exit(list);
}
//}
}
static void Main(string[] args)
{
t1.Start();
t2.Start();
Console.ReadLine();
}
}
}
还有一个[Synchronization]:
要先引用Using System.Runtime.Remoting.Contexts;
然后要让该类继承自ContextBoundObject类,还要在该类前写上[Synchronization]
这个方法试了下,但是没看到效果,暂时还没发现自己的问题出在哪儿……
- 线程同步的小例子(两个线程对一个List进行写操作)
- 线程同步的小例子
- 使用Event同步线程的小例子
- java线程同步的小例子
- C#中的一个线程同步的例子
- 两个线程对一个变量进行++操作,直至变量值为20
- 线程同步的例子
- 一个用双信号灯同步机制,协调两个后台线程的例子。
- Linux下多个进程或线程同时对一个文件进行写操作
- Linux下多个进程或线程同时对一个文件进行写操作
- Linux下多个进程或线程同时对一个文件进行写操作
- Linux下多个进程或线程同时对一个文件进行写操作
- 解决Linux下多个进程或线程同时对一个文件进行写操作问题
- Linux下多个进程或线程同时对一个文件进行写操作
- Linux下多个进程或线程同时对一个文件进行写操作和access函数
- 20、线程同步的一个小问题
- java线程的一个小例子
- 对list的线程不安全操作
- 2013年最棒的4个PHP框架
- JQuery入门——事件切换之toggle()方法
- C++中的单例模式
- C++ STL学习笔记
- Android之Handler总结与Timer和TimerTask详解
- 线程同步的小例子(两个线程对一个List进行写操作)
- Python 之 Socket编程学习笔记
- bzoj 1717: [Usaco2006 Dec] Milk Patterns
- 【枚举】_枚举的作用笔记
- Camera系统中设置picture大小菜单的流程分析(二)
- objective-c 装箱和拆箱
- linux下scp命令详解
- 黑马程序员—懒汉式和饿汉式
- 健康生物钟,程序员健康生活规划