Java、C#线程模型分析对比(转)

Java、C#线程模型分析对比 (转)[@more@]

  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