我爱Aspx >> Asp.Net >> Java与C#多线程的不同与常用模式转换【IT168技术文档】
线程是允许进行并行计算的一个抽象概念:在另一个线程完成计算任务的同时,一个线程可以对图像进行更新,二个线程可以同时处理同一个进程发出的二个网络请求。我们在这篇文章中将重点讨论Java和C#在线程方面的不同之处,并将一些Java中线程的常用模式转换为C#。 从概念上讲,线程提供了一种在一个软件中并行执行代码的方式━━每个线程都“同时”在一个共享的内存空间中执行指令,(当然是在一个处理器上,这是通过处于运行状态的线程的交替执行完成的。),因此,每个线程都可以访问一个程序内的数据结构。由于这种原因,多线程编程的难度就可想而知了,因为一个程序内有许多不同的线程需要安全地共享数据。 线程的创建和运行 Java在java.lang.Thread和java.lang.Runnable类中提供了大部分的线程功能。创建一个线程非常简单,就是扩展Thread类,并调用start()。通过创建一个执行Runnable()的类,并将该类作为参数传递给Thread(),也可以定义一个线程。仔细地阅读下面这个简单的Java程序,其中有2个线程同时在从1数到5,并将结果打印出来。Interlocked中还包括一个名字为Exchange的方法,可以“不可分割”地将一个变量的值设置为另一个变量的值。
线程池如果许多利用了线程的应用软件都创建线程,这些线程将会因等待某些条件(键盘或新的I/O输入等)而在等待状态中浪费大部分的时间,C#提供的System.Threading.ThreadPool对象可以解决这一问题。使用ThreadPool和事件驱动的编程机制,程序可以注册一个System.Threading.WaitHandle对象(WaitHandle是C#编程中等待和通知机制的对象模型。)和System.Threading.WaitOrTimerCallback对象,所有的线程无需自己等待WaitHandle的释放,ThreadPool将监控所有向它注册的WaitHandle,然后在WaitHandle被释放后调用相应WaitOrTimerCallback对象的方法。
结束语在本篇文章中我们简单地讨论了C#提供的用于线程和并行操作的机制,其中的大部分与Java相似━━C#提供了可以运行提供的方法的Thread对象,同时提供了对代码访问进行同步的方法。与在其他方面一样,C#在线程方面也提供了一些Java不支持的语法(在一定程度上,揭示了同步操作的一些底层的内容。)
Ҷƪл˵?
c#与java的多线程技术比较[04-28]
C#农历[04-25]
从C#中访问DHTML DOM对象[04-25]
C#中使用SQL Server分布式管理对..[04-25]
在C#中利用Excel做高级报表[04-25]
在C#中实现Ping[04-25]
C#中改变显示器的分辨率[04-25]
捕捉DataGrid的双击事件(C#版本)[04-25]
C#中一些字符串操作的常用用法[04-25]
C#代码关闭Windows XP[04-25]
VS Express Editions Orcas CTP版..[04-28]
c#与java的多线程技术比较[04-28]
微软描绘Visual Studio Team Sys..[04-28]
DB2日志传送基础知识[04-28]
SQL Server中日期问题的解决[04-28]
比较SQL Server、Oracle和DB2的不..[04-28]
索引的应用规律总结[04-28]
震惊 Vista竟只支持SQL Server 2..[04-28]
SQL Server 2005:你应该知道的1..[04-28]
DB2数据库在RS6000上的安装过程[04-28]