我在玩线程。我有一个问题,我认为它是一个非常基本的一个:线程同步问题
我有一个类:
Class Message {
public WriteMsg(string msg)
{
Console.Writeline(msg);
}
}
我创建这个类的一个对象
Message msg = new Message();
现在我创建10个线程和通这个消息对象是由十个线程执行的函数。每个都会将其线程索引传递给writemsg,写入标准输出。我编写并测试了应用程序及其编写的线索索引1至10.
正如您所看到的,我没有实现任何种类的同步。如果类正在执行上面提到的功能,在访问线程中的对象时是否需要锁定机制?
@ user384706我有另一个后续问题。我正在读asp.net线程池,它指定你可以创建5个左右的工作线程和大约1000个I/O线程,但是你可以创建只有很多线程映射到一个核心。那么,asp.net框架的实现是否是内核线程映射的用户线程? – 2011-03-28 14:31:03
@ asp.nerd:我不知道有关asp.net的情况。一般而言,尽管您不应该启动任何线程,但线程越多,获得CPU访问权限越高,因此性能越差。除非线程长时间被阻塞,例如对于I/OI来说,这是你在asp.net中描述的模型,也就是说,工作线程应该和CPU一样多,而不是更多具有并发性,并且对于分配给有很多阻塞任务的线程,你可以拥有任何号码。希望这有助于。 – Cratylus 2011-03-29 20:20:47