進(jìn)程、應(yīng)用程序域、對(duì)象上下文屬于存儲(chǔ)(內(nèi)存)概念:
進(jìn)程:一個(gè)應(yīng)用程序在內(nèi)存中的物理存在,他是這個(gè)應(yīng)用程序所需的各種資源的集合。
應(yīng)用程序域:.NET 中將進(jìn)程進(jìn)一步進(jìn)行邏輯劃分成各種應(yīng)用程序域已進(jìn)行邏輯隔離,應(yīng)用程序?qū)嶋H上是運(yùn)行在某個(gè)應(yīng)用程序域上的,好處是如果某個(gè) 應(yīng)用程序域的 APP 掛掉,其他的不會(huì)應(yīng)受到影響。
對(duì)象上下文:在應(yīng)用程序域中進(jìn)行進(jìn)一步的分層,在這里承載各種對(duì)象實(shí)體,一般情況下對(duì)象被分配到默認(rèn)對(duì)象上下文中,所屬應(yīng)用程序域中的任何地方都可以訪問該對(duì)象。如果對(duì)象有特殊需求,可以將對(duì)象分配到單獨(dú)的對(duì)象上下文中(繼承 contextboundobject類型),如果需要同步訪問該對(duì)象,可以在類型定義時(shí)添加【Synchronization】特性,以表示當(dāng)前對(duì)象被放到同步上下文中,需要線程同步訪問,從而實(shí)現(xiàn)資源共享。
線程:CPU 調(diào)度、運(yùn)行單元,每個(gè)時(shí)刻,都只有一個(gè)線程在訪問資源,他可能在訪問進(jìn)程的任何區(qū)域,如果給某個(gè)共享資源賦值到一半, CPU 將這個(gè)線程掛起,加載另一個(gè)線程進(jìn)來也去對(duì)這個(gè)共享資源進(jìn)行賦值,就會(huì)出現(xiàn)并發(fā)問題。
聯(lián)系客服