You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
{
|
|
|
|
|
"cells": [
|
|
|
|
|
{
|
|
|
|
|
"attachments": {},
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {
|
|
|
|
|
"dotnet_interactive": {
|
|
|
|
|
"language": "csharp"
|
|
|
|
|
},
|
|
|
|
|
"polyglot_notebook": {
|
|
|
|
|
"kernelName": "csharp"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"source": [
|
|
|
|
|
"抢占模式与合作模式\n",
|
|
|
|
|
"=============================="
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"attachments": {},
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {
|
|
|
|
|
"dotnet_interactive": {
|
|
|
|
|
"language": "csharp"
|
|
|
|
|
},
|
|
|
|
|
"polyglot_notebook": {
|
|
|
|
|
"kernelName": "csharp"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"source": [
|
|
|
|
|
".Net中,托管线程分为抢占模式和合作模式;区分这两种模式,主要是为了GC的实现。 \n",
|
|
|
|
|
"\n",
|
|
|
|
|
"处于合作模式的线程可以自由地访问托管堆上的对象;处理抢占模式的线程则不能访问托管堆上的对象,如果需要访问则必须等待GC结束并切换到合作模式。因为托管代码随时需要访问托管堆,所以托管代码必须在合作模式下运行,而非托管代码则没有这个限制。进入抢占模式后,托管代码暂停执行而非托管代码可以继续做与.Net对象无关的处理。 \n",
|
|
|
|
|
"\n",
|
|
|
|
|
"模式切换分为主动切换和被动切换"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"attachments": {},
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {
|
|
|
|
|
"dotnet_interactive": {
|
|
|
|
|
"language": "csharp"
|
|
|
|
|
},
|
|
|
|
|
"polyglot_notebook": {
|
|
|
|
|
"kernelName": "csharp"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"source": [
|
|
|
|
|
"GC安全点"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"metadata": {
|
|
|
|
|
"kernelspec": {
|
|
|
|
|
"display_name": ".NET (C#)",
|
|
|
|
|
"language": "C#",
|
|
|
|
|
"name": ".net-csharp"
|
|
|
|
|
},
|
|
|
|
|
"polyglot_notebook": {
|
|
|
|
|
"kernelInfo": {
|
|
|
|
|
"defaultKernelName": "csharp",
|
|
|
|
|
"items": [
|
|
|
|
|
{
|
|
|
|
|
"aliases": [
|
|
|
|
|
"c#",
|
|
|
|
|
"C#"
|
|
|
|
|
],
|
|
|
|
|
"languageName": "C#",
|
|
|
|
|
"name": "csharp"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [
|
|
|
|
|
"frontend"
|
|
|
|
|
],
|
|
|
|
|
"languageName": null,
|
|
|
|
|
"name": "vscode"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [
|
|
|
|
|
"powershell"
|
|
|
|
|
],
|
|
|
|
|
"languageName": "PowerShell",
|
|
|
|
|
"name": "pwsh"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"languageName": null,
|
|
|
|
|
"name": ".NET"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [
|
|
|
|
|
"f#",
|
|
|
|
|
"F#"
|
|
|
|
|
],
|
|
|
|
|
"languageName": "F#",
|
|
|
|
|
"name": "fsharp"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"languageName": "HTML",
|
|
|
|
|
"name": "html"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"languageName": "KQL",
|
|
|
|
|
"name": "kql"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"languageName": "Mermaid",
|
|
|
|
|
"name": "mermaid"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"languageName": "SQL",
|
|
|
|
|
"name": "sql"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"languageName": null,
|
|
|
|
|
"name": "value"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [
|
|
|
|
|
"js"
|
|
|
|
|
],
|
|
|
|
|
"languageName": "JavaScript",
|
|
|
|
|
"name": "javascript"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"name": "webview"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"aliases": [],
|
|
|
|
|
"languageName": "T-SQL",
|
|
|
|
|
"name": "sql-Demo"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|
"nbformat_minor": 2
|
|
|
|
|
}
|