//了解进程
//进程(Process)是计算机中的程序关于某数据集合上的一次运行活动
//是系统进行资源分配和调度的基本单位,是操作系统结构的基础
//说人话:打开一个应用程序就是在操作系统上开启了一个进程
//进程之间可以相互独立运行,互不干扰
//进程之间也可以互相访问、操作
//了解线程
//操作系统能够进行运算调度的最小单位
//它被包含在进程之中,是进程中的事件运作单位
//一条线程指的是进程中一个单一顺序的控制器,一个进程中可以并发多个线程
//我们写的程序 都在主线程中
//简单理解线程
//就是代码从上到下运行的一条”管道“
//语法相关
//线程类 Thread
//需要引用命名空间using system.Threading
// 1申明一个新的线程
// 注意 线程执行的代码 需要封装到一个函数中
Thread t = new Thread(NewThreadLogic);
static void NewThreadLogic()//线程方法
{
Console.WriteLine("新开一个线程");
};
// 2启动线程
t.Start();
// 3设置为后台线程
// 当前台线程都结束了的时候,整个程序也就结束了,即使还有后台线程正在运行
//后台线程不会防止应用程序的进程被终止掉
//如果不设置为后台线程 可能导致进程无法正常关闭
// 4关闭释放一个线程
// 如果开启的线程中不是死循环 是能够结束的逻辑 那么 不用刻意的去关闭它
//如果是死循环 想要中止这个线程 有两种方法
// 4-1 死循环种Bool标识
Bool IsRuning=true; //默认为真,退出死循环致标识为False推出循环
static void NewThreadLogic()//线程方法
{
while(IsRuning)
{
//循环逻辑
}
};
// 4-2 通过线程提供的方法
try
{
t.Abort();
t=null;对空资源进行回收
}
catch
{
}
// 5线程之间共享数据
// 多个线程使用的内存是共享的,都属于该应用(进程)
//所以要注意 当多线程 同时操作同一片内存区域时可能会出现问题
//可以通过加锁的形式避免问题
//类如下列子
static void Main(string[] args)
{
Thread t = new Thread(NewThreadLogic);
t.Start();
t.IsBackground = true;
while (true)
{
Console.SetCursorPosition(0, 0);
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("@");
}
Console.ReadKey();
}
static void NewThreadLogic()
{
while (true)
{
Console.SetCursorPosition(10, 0);
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("*");
}
}
![image](/i/l/?n=23&i=blog/2893229/202301/2893229-20230108232827318-1478527012.png)
标签:知识点,Console,NewThreadLogic,Thread,void,36,线程,进程,多线程
From: https://www.cnblogs.com/L-love-Z/p/17035749.html