亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#線程實驗探究

        2021-06-28 10:59:54劉毓聶思兵楊濟寧
        山西電子技術(shù) 2021年3期
        關(guān)鍵詞:進度條內(nèi)江線程

        劉毓,聶思兵,楊濟寧

        (1.內(nèi)江師范學(xué)院計算機科學(xué)學(xué)院(人工智能學(xué)院),四川 內(nèi)江 641100;2.珠海博聞教育科技發(fā)展有限公司,廣東 珠海 519000;3.內(nèi)江職業(yè)技術(shù)學(xué)院,四川 內(nèi)江 641111)

        1 概述

        程序執(zhí)行流的最小執(zhí)行單位,是行程中的實際運作單位,是進程中的實際運作單位[1];是進程中按順序執(zhí)行的控制流,每條線程承擔(dān)各自的任務(wù),一個進程中可以并發(fā)多個線程[2]。線程間通信主要通過共享內(nèi)存,上下文切換很快,資源開銷較少,但相比進程不夠穩(wěn)定容易丟失數(shù)據(jù)。

        為提高程序的可靠性,簡化編程代碼,實現(xiàn)程序并發(fā)執(zhí)行線程,線程采用代碼與代碼之間的隔離技術(shù)。由此可見,合理安排線程實驗,對于C# 的實驗有重要意義。

        討論C#線程實驗,目的就是通過實驗讓學(xué)生掌握線程的創(chuàng)建與控制,包括創(chuàng)建線程、暫停和恢復(fù)線程、終止線程、設(shè)置線程執(zhí)行的優(yōu)先級,線程的同步方法。

        2 C# 實現(xiàn)線程的常用方式

        2.1 Thread類實現(xiàn)

        在C#語言中線程(Thread)是包含在進程中的,它位于 System.Threading 命名空間中,線程的創(chuàng)建以及執(zhí)行使用hread 類。

        Thread類的實現(xiàn)方式,關(guān)鍵代碼如下:

        public void TestThread()

        {

        Thread thread = new Thread( TestAction);

        //設(shè)置屬性

        thread.IsBackground = true;

        thread.Name = "Test";

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

        }

        private void TestAction()

        {

        //處理相關(guān)業(yè)務(wù)

        }

        主要操作步驟為:設(shè)置相關(guān)屬性new Thread(TestAction);啟動 thread.Start();處理的相關(guān)業(yè)務(wù);執(zhí)行相關(guān)業(yè)務(wù)操作等。

        2.2 ThreadPool 線程池實現(xiàn)

        需要創(chuàng)建的線程很多,且都是比較小的線程的情況下,可以使用線程池(ThreadPool類)。ThreadPool是一個靜態(tài)方法,提供了對一個線程集合的操作,它會在線程數(shù)不足時增加線程,空閑線程數(shù)過多時釋放資源。ThreadPool 線程池實現(xiàn)的關(guān)鍵,有如下幾步:

        設(shè)置相關(guān)屬性;通過線程池自動分配線程執(zhí)行對應(yīng)的業(yè)務(wù)功能;實現(xiàn)線程處理的相關(guān)業(yè)務(wù);執(zhí)行相關(guān)業(yè)務(wù)操作等。

        2.3 Delegate 實現(xiàn)的多線程

        delegate由于需要不斷的實例化,委托類將會消耗cup 和內(nèi)存,其關(guān)鍵代碼如下:

        private void TestAction()

        {

        //處理相關(guān)業(yè)務(wù)

        }

        ///

        ///子線程回調(diào)

        ///

        private void CallBack(IAsyncResultar)

        {

        }

        除此之外,還有Task 實現(xiàn)多線程,Parallel實現(xiàn)多線程等方式,這里不一一贅述。

        3 C#線程實驗的注意事項

        在C#線程編程實踐發(fā)現(xiàn),單線程最顯著的缺點是,當(dāng)一個事件發(fā)生,程序進行一個耗時的運算動作時,UI線程會出現(xiàn)假死現(xiàn)象,此時會無視對用戶的響應(yīng)。多個執(zhí)行流是多線程的特點,因此為了充分提高CPU的利用率。一個程序中可以同時運行和創(chuàng)建多個并行執(zhí)行的線程來完成各自的任務(wù)。

        在多線程程序中,線程的運行相互獨立,互不干擾,從而提高程序的效率。但使用多線程存在諸多不利因素,線程越多占用內(nèi)存也越多,線程越多協(xié)調(diào)和管理越麻煩, CPU需要花更多的時間,也存在訪問共享資源時會彼此干擾,從而導(dǎo)致對他們的控制過程太復(fù)雜。以下兩個問題也得一起注意:

        3.1 操縱一個線程出現(xiàn)的異常

        利用Thread.Start()方法重新啟動線程oThread,但顯然Abort()方法帶來的后果是不可恢復(fù)的終止線程,所以最后程序會拋出ThreadStateException異常。其關(guān)鍵內(nèi)容包括:

        創(chuàng)建一個線程,使之執(zhí)行Beta方法 ,該方法只是通知CPU此線程可以被執(zhí)行,但具體執(zhí)行時機則由CPU自行決定。

        3.2 線程的優(yōu)先級設(shè)置

        線程的優(yōu)先級設(shè)置應(yīng)滿足以下原則:

        1)當(dāng)線程之間同時需要CPU時,CPU按線程的優(yōu)先級給予服務(wù)。

        2)C#設(shè)計中,在創(chuàng)建線程時,可以設(shè)置5個不同的線程的優(yōu)先級,不指定優(yōu)先級,則系統(tǒng)為默認值ThreadPriority.Normal。

        根據(jù)用戶的響應(yīng)輕重緩急,設(shè)置相應(yīng)的線程的優(yōu)先級,同時CPU會將更多的時間片分給優(yōu)先級高的線程,在相同任務(wù)量的前提下,高優(yōu)先級線程將會較快地完成任務(wù)。

        4 C#多線程的典型應(yīng)用實驗

        多線程編程應(yīng)用廣泛,主要有幾個方面:

        1)即時響應(yīng),后臺線程完成特定操作。

        2)多個線程參與,完成同類任務(wù),提高并發(fā)性能。

        3)一個任務(wù)可以有多個獨立的步驟,多個線程可以并發(fā)執(zhí)行各子任務(wù),以用來提高任務(wù)處理效率,下面通過兩個例子予以說明。

        a)進度條

        圖1 系統(tǒng)方框圖

        分析:頁面動態(tài)刷新,在主頁面正常操作前提下,用后臺線程來實現(xiàn)進度條。

        首先,創(chuàng)建Winform頁面,然后拖入進度條控件,篇幅關(guān)系,相關(guān)代碼從略。

        b)網(wǎng)絡(luò)扒蟲

        獲取網(wǎng)絡(luò)資源,網(wǎng)絡(luò)搜索功能實現(xiàn),都利用了扒蟲程序思想。一般情況下,扒蟲程序耗時大,如果使用多線程編程,將節(jié)約許多時間。篇幅關(guān)系,相關(guān)代碼從略。

        5 總結(jié)

        前面就C#實現(xiàn)線程的常用方式,C#線程的實驗的注意事項,C#多線程的典型應(yīng)用實驗做了初步的討論,關(guān)于C#線程實驗注意的問題還很多,由于篇幅所限,這里不一一贅述。

        文中的部分案例來自網(wǎng)絡(luò),由于出處較多,在此一并向作者致謝!

        猜你喜歡
        進度條內(nèi)江線程
        水管接水
        詩潮(2025年2期)2025-03-06 00:00:00
        平安內(nèi)江,幸福的港灣
        四川內(nèi)江:青花椒成為增收新引擎
        為什么進度條到99%就不動了
        旗幟文摘(2020年5期)2020-06-09 12:20:12
        為什么進度條到99%就不動了
        意林(2020年10期)2020-06-01 07:26:37
        為什么進度條到99%就不動了
        知識窗(2020年3期)2020-04-02 07:08:28
        內(nèi)江本土優(yōu)秀傳統(tǒng)文化傳承發(fā)展問題研究
        淺談linux多線程協(xié)作
        內(nèi)江市中區(qū)聯(lián)社:做“小微”金融服務(wù)專業(yè)銀行
        Linux線程實現(xiàn)技術(shù)研究
        男女男在线精品免费观看| 国产操逼视频| 国产亚洲av手机在线观看 | 亚洲国产精华液网站w| 国产精品厕所| av无码特黄一级| 亚洲捆绑女优一区二区三区| 超碰人人超碰人人| 吃奶摸下的激烈视频| 成年女人在线观看毛片| 熟女不卡精品久久av| 边添小泬边狠狠躁视频| 在线亚洲午夜理论av大片| 日本一区二区啪啪视频| 五月激情在线观看视频| 影音先锋久久久久av综合网成人| 久久无码专区国产精品s| 国产精品女视频一区二区| 中文少妇一区二区三区| 国产日本精品一二三四区| 日韩吃奶摸下aa片免费观看| 伊人精品无码AV一区二区三区 | 国产精品熟女视频一区二区三区 | 爱性久久久久久久久| 爽妇网国产精品| 台湾自拍偷区亚洲综合| 亚洲国产精品亚洲一区二区三区| 性一交一乱一伧国产女士spa| 欧美日韩中文字幕久久伊人| 成人亚洲性情网站www在线观看 | 台湾佬自拍偷区亚洲综合| 亚洲是图一区二区视频| 色婷婷av一区二区三区丝袜美腿| 国产办公室秘书无码精品99| 国产亚洲美女精品久久久| 久久狠狠爱亚洲综合影院| 大香蕉av一区二区三区| 亚洲av天天做在线观看| 中文字幕久久久久久久系列| 亚洲无人区乱码中文字幕动画| 精品国产青草久久久久福利|