ASP.NET線程安全與靜態(tài)變量的生命周期是什么

這篇文章主要講解了“ASP.NET線程安全與靜態(tài)變量的生命周期是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ASP.NET線程安全與靜態(tài)變量的生命周期是什么”吧!

創(chuàng)新互聯(lián)建站成立于2013年,我們提供高端成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站定制、全網(wǎng)營銷推廣、小程序設(shè)計、微信公眾號開發(fā)、成都網(wǎng)站營銷服務,提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計、程序開發(fā)來完成項目落地,為PE包裝袋企業(yè)提供源源不斷的流量和訂單咨詢。

void Application_Start開始

void Application_End結(jié)束的,本來這就是對的

今天要做一個全局的應用,想確認一下,在網(wǎng)上一找,我的天,說什么的都有

大概分三種

1.Application_Start——Application_End

2.Session_Start——Session_End

3.類生命周期結(jié)束

我用4個機器做了一個測試發(fā)現(xiàn)靜態(tài)變量值一直是不變的,并沒有因為其它用戶登錄而被銷毀,確認應該是Application級的

靜態(tài)類在***訪問時會調(diào)用靜態(tài)構(gòu)造器創(chuàng)建類類型對象,類型對象的生存周期是整個應用程序域的生存周期,也就說被訪問過的靜態(tài)類,只有它所在的應用程序域被卸載時才會被卸載。

類的成員分為兩類,靜態(tài)成員(static member)和實例成員(instance member)。靜態(tài)成員屬于類,實例成員則屬于對象,即類的實例。

簡單討論一下在一個類中使用靜態(tài)字段(static field)和靜態(tài)方法(static method)是否會有線程安全問題。

我們在知道, 靜態(tài)字段(static field)和靜態(tài)方法(static method)的調(diào)用是通過類來調(diào)用。靜態(tài)方法不對特定的實例操作,只能訪問靜態(tài)成員。實例方法可對特定的實例操作,既能訪問靜態(tài)成員,也能訪問實例成員。

那么,在多線程中使用靜態(tài)方法是否有ASP.NET線程安全問題?這要看靜態(tài)方法是是引起ASP.NET線程安全問題要看在靜態(tài)方法中是否使用了靜態(tài)成員。

因為,在多線程中使用同一個靜態(tài)方法時,每個線程使用各自的實例字段(instance field)的副本,而共享一個靜態(tài)字段(static field)。所以說,如果該靜態(tài)方法不去操作一個靜態(tài)成員,只在方法內(nèi)部使用實例字段(instance field),不會引起安全性問題。但是,如果該靜態(tài)方法操作了一個靜態(tài)字段,則需要靜態(tài)方法中采用互斥訪問的方式進行安全處理。

舉個簡單的例子,我們使用的Console.WriteLine();中WriteLine()是Console.WriteLine類的靜態(tài)方法。

對于ASP.NET線程安全中, 多個客戶端訪問服務器端, 這是一個多線程的例子.只要理解了原因,我們可以在三層架構(gòu)中的數(shù)據(jù)訪問層中放心使用靜態(tài)方法(static method)來訪問數(shù)據(jù)庫.

靜態(tài)方法如果沒有使用靜態(tài)變量,則沒有線程安全問題。

為什么呢?因為靜態(tài)方法內(nèi)聲明的變量,每個線程調(diào)用時,都會新創(chuàng)建一份,而不會共用一個存儲單元。每個線程都會創(chuàng)建自己的一份,因此不會有線程安全問題

注意,靜態(tài)變量,由于是在類加載時占用一個存儲區(qū),每個線程都是共用這個存儲區(qū)的,所以如果在靜態(tài)方法里使用了靜態(tài)變量,這就會有線程安全問題!

感謝各位的閱讀,以上就是“ASP.NET線程安全與靜態(tài)變量的生命周期是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對ASP.NET線程安全與靜態(tài)變量的生命周期是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

當前名稱:ASP.NET線程安全與靜態(tài)變量的生命周期是什么
新聞來源:http://muchs.cn/article48/jpshep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、營銷型網(wǎng)站建設(shè)、自適應網(wǎng)站、App設(shè)計、網(wǎng)站維護網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)