偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 后端
ASP.NET線程安全涉及的是什么呢?ASP.NET線程安全應(yīng)該注意什么呢?那么本文就將在這幾個(gè)方面向你介紹,

ASP.NET線程安全所涉及的是什么呢?讓我們先來看看靜態(tài)變量的生命周期問題,下面是我理解的靜態(tài)變量的生命周期:

void Application_Start開始

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

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

大概分三種

1.Application_Start——Application_End

2.Session_Start——Session_End

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

我用4個(gè)機(jī)器做了一個(gè)測(cè)試發(fā)現(xiàn)靜態(tài)變量值一直是不變的,并沒有因?yàn)槠渌脩舻卿浂讳N毀,確認(rèn)應(yīng)該是Application級(jí)的

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

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

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

我們?cè)谥? 靜態(tài)字段(static field)和靜態(tài)方法(static method)的調(diào)用是通過類來調(diào)用。靜態(tài)方法不對(duì)特定的實(shí)例操作,只能訪問靜態(tài)成員。實(shí)例方法可對(duì)特定的實(shí)例操作,既能訪問靜態(tài)成員,也能訪問實(shí)例成員。

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

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

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

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

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

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

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

ASP.NET線程安全及靜態(tài)變量生命周期就向你介紹到這,希望對(duì)你理解ASP.NET線程安全和靜態(tài)變量生命周期有所幫助。

【編輯推薦】

  1. ASP.NET緩存分析和實(shí)踐淺析
  2. ASP.NET數(shù)據(jù)庫緩存淺析
  3. ASP.NET源碼之自定義控件DateTimePicker
  4. ASP.NET文件下載函數(shù)使用淺析
  5. 構(gòu)建ASP.NET線程安全集合淺析
責(zé)任編輯:仲衡 來源: cnblogs
相關(guān)推薦

2009-08-04 16:05:15

ASP.NET頁面生命

2009-07-23 10:23:44

2009-07-20 10:33:02

ASP.NET MVC

2013-04-07 10:42:56

Asp.Net頁面周期

2009-07-23 18:14:17

MVC生命周期

2009-08-04 16:50:15

ASP.NET頁面生命

2009-07-31 10:47:18

ASP.NET頁面生命

2009-08-04 17:49:31

Web Page生命周ASP.NET Pos

2009-08-03 14:18:40

ASP.NET編程模型ASP.NET頁面生命

2009-06-18 13:32:39

Java線程生命周期

2012-08-16 09:38:38

ASP.NET

2009-08-10 14:31:46

ASP.NET組件設(shè)計(jì)ASP.NET控件生命

2009-02-12 13:16:55

請(qǐng)求生命周期MVCASP.NET

2012-01-16 09:00:56

線程

2011-06-21 10:26:37

2009-07-28 09:46:53

ASP.NET服務(wù)器控

2009-07-23 18:55:17

ASP.NET頁生命周

2021-04-26 09:22:07

ASP.NET Cor服務(wù)周期

2010-04-02 09:02:02

ASP.NET MVC

2024-06-03 08:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)