read the "Threading and Synchronization" part in this blog from the Microsoft CLR team architect Chris Brumme:http://blogs.msdn.com/cbrumme/archive/2004/02/21/77595.aspx

解决方案 »

  1.   

    谢谢saucer(思归) 回复,但是我的英文不太好(惭愧), 阅读这么长篇的文章有些困难, 能不能给一点简单的提示,谢谢。 
      

  2.   

    只要你有足够的内存以及足够快/多的CPU,好像应该不是问题但如果你的内存不够,就会有paging问题,线程多了,context switch也会是个问题,这样多线程的好处就看不出来了你还会有线程间数据共享和可能的死锁的问题
      

  3.   


    1。 系统的配置还可以:双至强,1g(或2g)内存2。在多数情况下,不会有超过20个进程(PROCESS),只有在最坏的情况下,可能达到100个,很多时候可能一个都没有3。线程我也考虑过,但主要是因为有的线程使用java代码,在C#同一个进程里调用JAVA代码好像不太容易(我没有找到办法)。 所以,我只有考虑创建多个进程PROCESS, 每一个进程去做那应该由一个线程THREAD完成的工作。进程之间数据的传递通过数据库来进行。我直到这个办法比较恶心。但无奈啊!(叹气)或者你有什么好的办法?谢谢
      

  4.   

    对不起,没仔细看你的题目假如CLR和JVM都正常工作的话,20-100个进程应该不是问题,虽然进程多了,context switch更是个大问题好像没有好的办法,除非你都用一个东西来作,要么JAVA,要么.NET这是个什么项目?为什么同时需要用JAVA?
      

  5.   


    给别人做的一个东西,从web serice 接收任务, 在由一个nt service 将任务分解成多个小的任务,然后再多线程的执行它们。 用两种语言是因为有两个系统存在,本来是两种不同的任务,现在必须整合到一个界面。我主要是不放心多个process的性能问题。 但你说不是问题应该就不是问题了。(思归说得不会错)因为每一个任务可能涉及到长时间,少cpu的运算,所以,我想context switch和数据库读写带来的复旦可以忽略掉。多次得到你的帮助,谢谢!