积极答复者
关于程序中的线程问题?

问题
-
在C#编程中,我只在书本上了解过多线程,在实际中没有用过,对线程这个问题很糊涂,也不清楚这个多线程到底要怎么用。
请各位高手给我讲讲多线程。- 已移动 Sheng Jiang 蒋晟Moderator 2009年6月29日 16:41 .Net基础类库问题 (发件人:Visual C#)
答案
-
单线程就是一个工作同一时间一个人做,多线程就是一个工作同一时间多个人做。但是对于单cpu的多线程程序来说,只是模拟多个人干(对于需要等待io线程来说的接近于实际),对于多cpu,实际上可以同时干。
好好学习,天天向上。- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
你好!
这个主题比较大,在一个帖子里估计很难将清楚,这里有详细的讲解和实例,希望对你有帮助,如果学习中遇到问题,我们继续交流啊!
http://msdn.microsoft.com/zh-cn/library/5xt1dysy.aspx
周雪峰- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
这些例子很多,比如开始.现在6个工人因工作需要,6个人要挖一条隧道,因为是多个人做,那么我们用多线程来做.
首先定义成员类 UserInfo(表示成员信息),还有一个方法Work()表示工作
public class UserInfo
{
private string _name;
/// <summary>
/// 工人名称
/// </summary>
public string Name
{
get { return _name; }
set { _name = value; }
}/// <summary>
/// 线程执行具体方法 注意:必须是Void类型,不能为静态方法
/// </summary>public void Work()
{
//这里写要做的工作代码
}
}
现在开始写线程代码
public class WorkThread
{
/// <summary>
/// 线程执行代码
/// </summary>public void CrazyCoderThread()
{
//假设6名工人开始工作
for (int i = 1; i <= 6; i++)
{
UserInfo u = new UserInfo();
u.Name = "6名工人" + i.ToString();
Thread t = new Thread(u.Work);
t.Start();
}
}
}
♡. Microsoft .NET Platform- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
多线程与委托事件在.net中是很重要的几个概念之一
其中要了解的东西会很多,更重要的是实际项目中的运用
建议楼主可以去找找资料,动手做下demo
http://www.google.cn/search?hl=zh-CN&newwindow=1&q=c%23+.net+%E5%A4%9A%E7%BA%BF%E7%A8%8B%E6%95%99%E5%AD%A6&btnG=Google+%E6%90%9C%E7%B4%A2
莫让青春付流水- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
默认情况下,C# 程序具有一个线程。此线程执行程序中以 Main 方法开始和结束的代码。Main 直接或间接执行的每一个命令都由默认线程(或主线程)执行,当 Main 返回时此线程也将终止。不过,可以创建辅助线程,以便与主线程一起并行执行代码。这些线程通常称为“辅助线程”。
辅 助线程可以用于执行耗时较多的任务或时间要求紧迫的任务,而不必占用主线程。例如,辅助线程经常用在服务器应用程序中,以便无需等待前面的请求完成即可响 应传入的请求。辅助线程还可用于在桌面应用程序中执行“后台”任务,以便使主线程(用于驱动用户界面元素)保持对用户操作的响应。
多线程处理解决了吞吐量和响应性的问题,但同时也带来了资源共享问题,如死锁和争用状态。多线程特别适用于需要不同资源(如文件句柄和网络连接)的任务。为单个资源分配多个线程可能会导致同步问题,线程会被频繁阻止以等待其他线程,从而与使用多线程的初衷背道而驰。
Radon- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
全部回复
-
在C#编程中,我只在书本上了解过多线程,在实际中没有用过,对线程这个问题很糊涂,也不清楚这个多线程到底要怎么用。
请各位高手给我讲讲多线程。- 已合并 feiyun0112Moderator 2009年6月28日 10:13 same
-
单线程就是一个工作同一时间一个人做,多线程就是一个工作同一时间多个人做。但是对于单cpu的多线程程序来说,只是模拟多个人干(对于需要等待io线程来说的接近于实际),对于多cpu,实际上可以同时干。
好好学习,天天向上。- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
你好!
这个主题比较大,在一个帖子里估计很难将清楚,这里有详细的讲解和实例,希望对你有帮助,如果学习中遇到问题,我们继续交流啊!
http://msdn.microsoft.com/zh-cn/library/5xt1dysy.aspx
周雪峰- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
这些例子很多,比如开始.现在6个工人因工作需要,6个人要挖一条隧道,因为是多个人做,那么我们用多线程来做.
首先定义成员类 UserInfo(表示成员信息),还有一个方法Work()表示工作
public class UserInfo
{
private string _name;
/// <summary>
/// 工人名称
/// </summary>
public string Name
{
get { return _name; }
set { _name = value; }
}/// <summary>
/// 线程执行具体方法 注意:必须是Void类型,不能为静态方法
/// </summary>public void Work()
{
//这里写要做的工作代码
}
}
现在开始写线程代码
public class WorkThread
{
/// <summary>
/// 线程执行代码
/// </summary>public void CrazyCoderThread()
{
//假设6名工人开始工作
for (int i = 1; i <= 6; i++)
{
UserInfo u = new UserInfo();
u.Name = "6名工人" + i.ToString();
Thread t = new Thread(u.Work);
t.Start();
}
}
}
♡. Microsoft .NET Platform- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
多线程与委托事件在.net中是很重要的几个概念之一
其中要了解的东西会很多,更重要的是实际项目中的运用
建议楼主可以去找找资料,动手做下demo
http://www.google.cn/search?hl=zh-CN&newwindow=1&q=c%23+.net+%E5%A4%9A%E7%BA%BF%E7%A8%8B%E6%95%99%E5%AD%A6&btnG=Google+%E6%90%9C%E7%B4%A2
莫让青春付流水- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23
-
默认情况下,C# 程序具有一个线程。此线程执行程序中以 Main 方法开始和结束的代码。Main 直接或间接执行的每一个命令都由默认线程(或主线程)执行,当 Main 返回时此线程也将终止。不过,可以创建辅助线程,以便与主线程一起并行执行代码。这些线程通常称为“辅助线程”。
辅 助线程可以用于执行耗时较多的任务或时间要求紧迫的任务,而不必占用主线程。例如,辅助线程经常用在服务器应用程序中,以便无需等待前面的请求完成即可响 应传入的请求。辅助线程还可用于在桌面应用程序中执行“后台”任务,以便使主线程(用于驱动用户界面元素)保持对用户操作的响应。
多线程处理解决了吞吐量和响应性的问题,但同时也带来了资源共享问题,如死锁和争用状态。多线程特别适用于需要不同资源(如文件句柄和网络连接)的任务。为单个资源分配多个线程可能会导致同步问题,线程会被频繁阻止以等待其他线程,从而与使用多线程的初衷背道而驰。
Radon- 已标记为答案 Riquel_DongModerator 2009年7月3日 7:23