单声道线程

本文关键字:线程 声道 单声道 | 更新日期: 2023-09-27 18:18:42

我正在尝试单声道/。Linux (Ubuntu)下的。Net 3.5。我尝试在Mono中使用线程,但它似乎不能正常工作。

public static void Main (string[] args)
{
    Thread thread =new Thread(()=> fn("first"));
    Thread thread1=new Thread(()=> fn("second"));
    thread.Start();
    thread1.Start();
}
static void fn(string name)
{
    for(int i=0;i<10;i++)
        Console.WriteLine(i+"  "+name);
}

两个循环顺序运行,就好像我没有使用线程。

怎么了?

单声道线程

在Windows上运行,大多数情况下第一个线程的所有写操作都发生在第二个线程之前。

这个循环太微不足道了,无法真正看到多个线程并发运行的效果。第一个线程可能只是在第二个线程启动之前完成。

试着在主循环中加入一个Sleep或spin循环。

for(int i=0; i<10; i++) {
    Console.WriteLine(i+" "+name);
    Thread.Sleep(10);
}

for(int i=0; i<10; i++) {
    Console.WriteLine(i+" "+name);
    for(int j=0; j<100000; j++);
}