线程的问题 看例子的时候看到这么一句话:Thread.Sleep(1000);请问可以直接调用Thread类的Sleep方法吗?难道不需要实例化一个Thread对象再调用?这样直接调用,到底是哪个线程睡觉呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充:经过查阅资料,貌似睡觉的是主线程(当前线程)。又有新的问题了,CPU在某一时刻是不是只能执行一个线程?还有,我的代码如下:1 Alpha alpha = new Alpha(); 2 Thread myThread = new Thread(new ThreadStart(alpha.Beta)); 3 myThread.Start(); 4 while (!myThread.IsAlive) ; 5 Thread.Sleep(3); 6 myThread.Abort(); 7 myThread.Join(); 8 Console.WriteLine("Press any key to continue\n"); 9 Console.ReadKey();这里Alpha类的Beta方法就是打印一句话。如果我把第5行改成睡1ms的话,屏幕上就只有Press any key to continue,而改成3ms的话,执行Beta方法似乎是概率性的。我猜想Thread.Start方法是不是只是把一个线程加入排队的行列。具体能不能执行,还需要看运气,也就是能不能争到资源。另外,Join方法貌似也很匪夷所思。这里线程都Abort了,为啥还要Join呢?国人似乎很喜欢把Join翻译成堵塞,但是我觉得按照英文原意翻不是挺好的吗?不就是让一个线程“加入”另一个线程吗?百思不得其解。望解答。 Thread.Sleep是静态方法,类方法,不需要实例化的 你的代码睡得是主线程,如果睡子线程应该在alpha.Beta方法里,如果alpha.Beta方法没有循环,子线程执行了就退出了。 1.不是“CPU在某一时刻只能执行一个线程”,但是看起来好像是这样...线程是OS的概念,这是分时系统的特性...如果你是计算机专业毕业,不知道就不应该了...如果不是,去补习《操作系统原理》...2.Join方法就是Join方法,没有翻译...所谓“阻塞”指它的执行过程,不要乱钻牛角尖... public static void Sleep ( int millisecondsTimeout)线程是操作系统分配CPU运算时间的最小单位。对于单CPU机器来说,微观时间内,每个时刻只能一个线程在运行。即使对于多CPU机器来说,使用多线程能提高效率阻塞的是当前线程. 可以这样理解,thread.Join把指定的线程加入到当前线程,合并为单线程. CPU在某一时刻只能执行一个线程,这只是微观的看法宏观上来说就是在并行运行,你不必在意这句 取未来一个时间到现在的时间差 Installshield 2008 为什么 我的程序只能在最后一步执行 如何绘制一条直线的垂线 每个人都可以写编译器——Roslyn CTP试用 vb.net如何打印数据表Data的内容,用的是针式打印机 特殊字符如何处理? 怎么将一个控件加载到鼠标上? 请问.net framework V1.1的C#编译器是什么? 如何在函数里返回STRING数组 com+注册问题 关于Session传值问题 [求助]用证券交易软件导出的XLS文件无法作为excel文件识别
1 Alpha alpha = new Alpha();
2 Thread myThread = new Thread(new ThreadStart(alpha.Beta));
3 myThread.Start();
4 while (!myThread.IsAlive) ;
5 Thread.Sleep(3);
6 myThread.Abort();
7 myThread.Join();
8 Console.WriteLine("Press any key to continue\n");
9 Console.ReadKey();
这里Alpha类的Beta方法就是打印一句话。如果我把第5行改成睡1ms的话,屏幕上就只有Press any key to continue,而改成3ms的话,执行Beta方法似乎是概率性的。我猜想Thread.Start方法是不是只是把一个线程加入排队的行列。具体能不能执行,还需要看运气,也就是能不能争到资源。
另外,Join方法貌似也很匪夷所思。这里线程都Abort了,为啥还要Join呢?国人似乎很喜欢把Join翻译成堵塞,但是我觉得按照英文原意翻不是挺好的吗?不就是让一个线程“加入”另一个线程吗?百思不得其解。
望解答。
int millisecondsTimeout
)
线程是操作系统分配CPU运算时间的最小单位。
对于单CPU机器来说,微观时间内,每个时刻只能一个线程在运行。
即使对于多CPU机器来说,使用多线程能提高效率
阻塞的是当前线程.
可以这样理解,thread.Join把指定的线程加入到当前线程,合并为单线程.