1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Java、C#線程模型分析對比(轉)-創(chuàng)新互聯(lián)
      Java、C#線程模型分析對比 (轉)[@more@]

        Java、C#都提供了面向對象的線程模型。它們都抽象出了線程對象,而開發(fā)人員在某個類的成員方法中實現(xiàn)線程應用邏輯。通過分離線程對象和線程方法,簡化了線程應用邏輯的開發(fā)。

      創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,先為游仙等服務建站,游仙等地企業(yè),進行企業(yè)商務咨詢服務。為游仙企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

      在Java中開發(fā)線程有兩種方法。第一種方法是由Thread派生一個線程類,實現(xiàn)run方法,并調用Thread.start方法啟動線程,如:

      class MyThread extends Thread { //創(chuàng)建線程類XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

      public void run() {…} //線程方法

      }

      MyThread aThread = new MyThread(); //創(chuàng)建一個線程對象

      aThread.start() ; //啟動線程

      第二種方法是通過實現(xiàn)Runable接口創(chuàng)建一個可執(zhí)行類,并利用一個Thread對象來啟動線程,如:

        class MyRunable implements Runnable{

      public void run() {…} //線程方法

      }

      MyRunable aRunable = new MyRunable(); //創(chuàng)建一個可執(zhí)行對象

        Thread aThread = new Thread(aRunable);    //創(chuàng)建一個線程對象,并與可執(zhí)行對象關聯(lián)

        aThread.start()  ;  //啟動線程

      C#的線程模型將線程對象和線程方法分離得更徹底,它可將任何一個原型為void( )的公有類成員方法(靜態(tài)或非靜態(tài))用作線程方法;另外線程啟動時還指定一個提供線程方法的對象(該對象提供線程應用邏輯所需的各種信息)。下面是一個簡單的例子:

      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方法作為線程方法執(zhí)行

      ThreadWork aThread = new ThreadWork();

      ThreadStart myThreadDelegate = new ThreadStart(aThread.DoWork);  //指定線程方法

      Thread myThread = new Thread(myThreadDelegate);  //創(chuàng)建線程對象

      myThread.Start();  //啟動線程

        }   //End of Main

        }  //End of  ThreadTest

      開發(fā)人員最關心的是如何實現(xiàn)線程方法。Java線程模型提供兩種方法來實現(xiàn)線程方法,重載Runable.run方法或者重載Thread.run方法。開發(fā)人員可根據(jù)具體的應用場合選擇合適的基類(Runable或者Thread),這是Java線程模型的一個優(yōu)點。另外可以看到,Java線程模型中只能在Runable或Thread的子類中實現(xiàn)線程方法(即子類的run方法),而且每個子類只能實現(xiàn)一個線程方法。C#線程模型由于允許將任何一個原型為void( )的公有類成員方法(靜態(tài)或非靜態(tài))用作線程方法,因此它實際上允許在任何一個類(不要求這個類是某個類的子類)中實現(xiàn)線程方法,而且同一個類中可以實現(xiàn)多個線程方法。面向對象的線程模型有兩個要素:線程對象和線程方法。線程對象封裝線程本身相關的邏輯,如線程的創(chuàng)建、銷毀等等。而線程方法就是線程對象實際執(zhí)行的任務。利用面向對象線程模型進行多線程開發(fā)時,這樣來思考問題會更自然:現(xiàn)在我有一項工作(即設計了一個線程方法),找一個工人(線程對象)來完成這個工作吧。所以我們認為C#的線程模型更靈活,而這種靈活性使得開發(fā)人員能夠將程序結構組織的更加清晰、合理。

      本文標題:Java、C#線程模型分析對比(轉)-創(chuàng)新互聯(lián)
      新聞來源:http://www.ef60e0e.cn/article/cdiiip.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        斗六市| 正安县| 清镇市| 定安县| 紫金县| 平湖市| 镇赉县| 万荣县| 扶绥县| 高安市| 隆尧县| 甘南县| 莱阳市| 正宁县| 滦南县| 弥渡县| 刚察县| 拉孜县| 东乌珠穆沁旗| 永善县| 上虞市| 潼南县| 舟曲县| 宝坻区| 长汀县| 南溪县| 广西| 习水县| 建宁县| 萍乡市| 宜章县| 西乌珠穆沁旗| 孟津县| 厦门市| 水富县| 馆陶县| 响水县| 象州县| 黔西| 宣化县| 连江县|