Java、C#线程模型分析对比(转)
Java、C#都提供了面向对象的线程模型。它们都抽象出了线程对象,而开发人员在某个类的成员方法中实现线程应用逻辑。通过分离线程对象和线程方法,简化了线程应用逻辑的开发。
在Java中开发线程有两种方法。第一种方法是由Thread派生一个线程类,实现run方法,并调用Thread.start方法启动线程,如:
class MyThread extends Thread { //创建线程类XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
public void run() {…} //线程方法
}
MyThread aThread = new MyThread(); //创建一个线程对象
aThread.start() ; //启动线程
第二种方法是通过实现Runable接口创建一个可执行类,并利用一个Thread对象来启动线程,如:
class MyRunable implements Runnable{
public void run() {…} //线程方法
}
MyRunable aRunable = new MyRunable(); //创建一个可执行对象
Thread aThread = new Thread(aRunable); //创建一个线程对象,并与可执行对象关联
aThread.start() ; //启动线程
C#的线程模型将线程对象和线程方法分离得更彻底,它可将任何一个原型为void( )的公有类成员方法(静态或非静态)用作线程方法;另外线程启动时还指定一个提供线程方法的对象(该对象提供线程应用逻辑所需的各种信息)。下面是一个简单的例子:
using System;
using System.Threading;
public class ThreadWork { //ThreadWork不显式继承任何类,DoWork可作为线程方法
public void DoWork() { for(int i = 0; i<10 ;i++) Console.WriteLine("Working thread..."); } //End of DoWork
} //End of ThreadWork
class ThreadTest{
public static void Main() { //将对象aThread 的DoWork方法作为线程方法执行
ThreadWork aThread = new ThreadWork();
成都创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目成都网站建设、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元资源做网站,已为上家服务,为资源各地企业和个人服务,联系电话:18980820575
当前名称:Java、C#线程模型分析对比(转)
文章网址:http://pwwzsj.com/article/pcgdhc.html