例如:
For(int i=0 i<10 i++){
Thread t=new Thread()
t.start()
}
c#中为什么能创建同名线程,同名线程如何区分呢,比如设置两个同名线程为不同优先级
答案:4 悬赏:0 手机版
解决时间 2021-02-11 04:29
- 提问者网友:書生途
- 2021-02-10 17:21
最佳答案
- 五星知识达人网友:逃夭
- 2021-02-10 18:17
这并不是同名线程
Thread t=new Thread();
每次循环,上一次循环中的t变量已经失效,这是变量作用域的问题,你找一下这方面的书.
c#中容许同名,但是两个变量的作用域要不同,如:
CLASS A
{
private string name;//name1,类成员name(全局变量)
public A(string name)//name2,方法参数
{
this.name=name;
name1 name2
}
public void B()
{
string name="爱爱爱";
this.name=name;
//类成员 局部变量
}
}
Thread t=new Thread();
每次循环,上一次循环中的t变量已经失效,这是变量作用域的问题,你找一下这方面的书.
c#中容许同名,但是两个变量的作用域要不同,如:
CLASS A
{
private string name;//name1,类成员name(全局变量)
public A(string name)//name2,方法参数
{
this.name=name;
name1 name2
}
public void B()
{
string name="爱爱爱";
this.name=name;
//类成员 局部变量
}
}
全部回答
- 1楼网友:夜余生
- 2021-02-10 21:57
线程是最小的可执行单元,就拿你的例子来说,每循环一次,线程就执行了一次。所以没有什么同名不可执行的。 你应该先好好理解下什么是线程。
- 2楼网友:神的生死簿
- 2021-02-10 21:19
每个进程都有相应的优先级,优先级决定它何时运行和接收多少cpu时间。最终的优先级共32级,是从0到31的数值,称为基本优先级别(base priority level)。系统按照不同的优先级调度进程的运行,0-15级是普通优先级,进程的优先级可以动态变化,高优先级进程优先运行,只有高优先级进程不运行时,才调度低优先级进程运行,优先级相同的进程按照时间片轮流运行。16-31级是实时优先级,实时优先级与普通优先级的最大区别在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制cpu,如果它不主动放弃控制,同级或低优先级的进程就无法运行。这就是进(线)程的推进问题。
希望这些对你有帮助。值得信赖.2011/10/13 22:20:59
- 3楼网友:由着我着迷
- 2021-02-10 19:55
你可以这样呀:将同名线程管理起来,比如放入一个数组:
Thread threads[] = new Thread[10];
For(int i=0 i<10 i++){
threads[i] = new Thread()
threads[i].start();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯