《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。

文章目录
- 一、本文面试题目录
-
-
- 61. 什么是线程(Thread)?进程与线程的区别
- 62. Thread、ThreadPool、Task的区别
- 63. 什么是线程安全?如何保证线程安全?
- 64. 简述lock关键字的作用及原理
- 65. Monitor类与lock的关系
- 66. 什么是死锁?如何避免死锁?
- 67. 什么是信号量(Semaphore)?使用场景
- 68. 异步编程中async和await关键字的作用
- 69. Task和Task<T>的区别
- 70. 什么是并行编程(Parallel)?Parallel.For和Parallel.ForEach的用法
- 71. 什么是线程池?线程池的工作原理
- 72. 如何实现线程间的通信?
- 73. 什么是CancellationToken?如何用于取消异步操作?
- 74. 同步上下文(SynchronizationContext)的作用
- 75. 异步方法中为什么要避免使用async void?
-
- 二、120道C#面试题目录列表
一、本文面试题目录
61. 什么是线程(Thread)?进程与线程的区别
-
原理说明:
- 线程(Thread):是程序执行流的最小单元,包含独立的程序计数器、栈和寄存器集合,共享所属进程的内存资源(如堆、全局变量等)。一个进程可包含多个线程,线程间切换成本低于进程。
- 进程(Process):是操作系统资源分配的基本单位,拥有独立的内存空间、文件句柄等资源,进程间相互隔离,通信需通过进程间通信(IPC)机制(如管道、共享内存)。
- 核心区别:
- 资源隔离:进程有独立内存空间,线程共享进程内存。
- 切换成本:线程切换比进程切换更高效(无需切换内存映射)。
- 通信方式:线程通过共享内存通信,进程需依赖IPC。
-
示例代码:
using System;
订阅专栏 解锁全文
3481


-- 多线程与异步&spm=1001.2101.3001.12003&articleId=150221225&d=1&t=3&u=deb1602f4b964d189cfb3c0e761cb725)

被折叠的 条评论
为什么被折叠?



