了解 C# 多线程、并发、异步、同步、并行

多线程:指在一个程序中同时运行多个线程。线程是程序执行的最小单位,多线程可以让程序在同一时间执行多个任务,提高程序的响应性和效率。  

并发:是指多个任务在一段时间内同时发生,但不一定是真正的同时执行,可能是通过任务切换来实现看似同时进行。  

异步:异步操作意味着启动一个操作后,程序不需要等待该操作完成就可以继续执行其他任务,操作完成时会通过回调或事件通知程序结果。  

同步:同步操作则要求程序在执行一个操作时,必须等待该操作完成才能继续执行后续代码。  

并行:并行强调的是真正在同一时刻同时执行多个任务,通常需要多核 CPU 或多个物理处理器的支持。  

多线程:

using System; 
using System.Threading; 
 
class Program 
{ 
    static void Main() 
    { 
        Thread thread1 = new Thread(ThreadMethod1); 
        Thread thread2 = new Thread(ThreadMethod2); 
 
        thread1.Start(); 
        thread2.Start(); 
    } 
 
    static void ThreadMethod1() 
    { 
        Console.WriteLine("线程 1 正在执行"); 
    } 
 
    static void ThreadMethod2() 
    { 
        Console.WriteLine("线程 2 正在执行"); 
    } 
} 

并行:

using System; 
using System.Threading; 
 
class Program 
{ 
    static void Main() 
    { 
        Console.WriteLine("主线程开始"); 
 
        Thread thread1 = new Thread(ConcurrentMethod1); 
        Thread thread2 = new Thread(ConcurrentMethod2); 
 
        thread1.Start(); 
        thread2.Start(); 
 
        Console.WriteLine("主线程继续执行其他操作"); 
    } 
 
    static void ConcurrentMethod1() 
    { 
        Console.WriteLine("并发线程 1 执行"); 
    } 
 
    static void ConcurrentMethod2() 
    { 
        Console.WriteLine("并发线程 2 执行"); 
    } 
} 

异步:

using System; 
using System.Threading.Tasks; 
 
class Program 
{ 
    static async Task Main() 
    { 
        Console.WriteLine("主线程开始"); 
 
        await AsyncMethod(); 
 
        Console.WriteLine("主线程继续"); 
    } 
 
    static async Task AsyncMethod() 
    { 
        Console.WriteLine("异步方法开始"); 
        await Task.Delay(2000); 
        Console.WriteLine("异步方法结束"); 
    } 
} 

同步:

using System; 
 
class Program 
{ 
    static void Main() 
    { 
        Console.WriteLine("同步操作开始"); 
        SyncMethod(); 
        Console.WriteLine("同步操作结束"); 
    } 
 
    static void SyncMethod() 
    { 
        Console.WriteLine("正在执行同步方法"); 
    } 
} 
using System; 
using System.Threading.Tasks; 
 
class Program 
{ 
    static void Main() 
    { 
        Parallel.Invoke( 
            () => ParallelMethod1(), 
            () => ParallelMethod2() 
        ); 
    } 
 
    static void ParallelMethod1() 
    { 
        Console.WriteLine("并行方法 1 执行"); 
    } 
 
    static void ParallelMethod2() 
    { 
        Console.WriteLine("并行方法 2 执行"); 
    } 
} 
CSharp

C# 阻止应用程序多开

2024-8-20 9:17:56

CSharp

WPF 登陆界面与Mysql

2024-8-24 5:30:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索