黑马程序员技术交流社区

标题: c#中的线程是什么东东? [打印本页]

作者: 乔红超    时间: 2013-5-31 23:36
标题: c#中的线程是什么东东?
c#中的线程是什么东东?
作者: 许庭洲    时间: 2013-6-1 06:20
1. 默认情况下,C# 程序具有一个线程;
2. 此线程执行程序中以 Main 方法开始和结束的代码;
3.  Main 直接或间接执行的每一个命令都由默认线程(或主线程)执行,当 Main 返回时此线程也将终止;
4. 不过,可以创建辅助线程,以便与主线程一起并行执行代码。这些线程通常称为“辅助线程”。
作者: 李奔    时间: 2013-6-1 08:37
给你推荐一篇线程入门文章吧,很不错的!
http://www.cnblogs.com/miniwiki/archive/2010/06/18/1760540.html
作者: 李云飞    时间: 2013-6-1 11:29
      视频中老师形象的将我们的每个程序比作一个商店而每一个线程就是商店老板请来的一个小工,程序开始时系统会默认的开启一个主线程,此时主线程就相当于商店的老板。当程序启动时主线程就会来执行Main方法中的代码,此时相当于商店有顾客来买东西老板就要去招呼客人了。就在老板招呼顾客的同时老板的儿子突然大便了此时当然得去跟儿子换尿布但是由于此时有顾客在商店老板就不得不去招待顾客只好让儿子继续哭了。老板考虑到以后会发生类似的事情他就去请了一个小工,此时老板请的小工就相当也我们开启的另外一个线程。下次再发生类似的事情,老板就可以要小工去跟儿子换尿布自己接着招呼顾客的。
      线程就相当于一个专门用来执行某段代码的程序流。一个C#程序开始于一个单线程,这个单线程是被CLR和操作系统(也称为“主线程”)自动创建的,并具有多线程创建额外的线程。当有需要时可以由主线程创建其他的线程。 线程用System中Thread类来创建, 通过ThreadStart委托来指明方法从哪里开始运行,也就是用委托来指明我创建的这个线程的主要作用。其有两种创建方式:1、Thread firstMode = new Thread(传入一个返回值为void无参数的方法); firstMode.start(); 2、Thread firstMode = new Thread(传入一个返回值为void带参数的方法); firstMode.start(传入的参数); 其中参数可以有一个也可以有几个,当要传入多个参数时就可以定义一个数组或是集合来存放你所要传入的的参数。
       线程又分为前台线程与后台线程。我们创建的线程默认都是前台线程,只有所有的前台线程都关闭才能完全的将程序关闭。我们可以通过调用线程的IsBackground属性将一个前台线程设置为后台线程,例如:firstMode.IsBackground = true。只要所有的前台线程都结束那么后台线程也就自动的结束。
以上是我对线程的一点理解,如有不妥之处劳烦大家之处。我们相互学习,共同提高一起向着黑马的大门迈进,谢谢!
作者: 胡章诚    时间: 2013-6-2 08:20
我个人的理解是:一般情况下程序顺着一条路走,一个线程就是一条路到底,当然也会循环,转弯;而多线程是指有多条路同时执行,就是可以同时执行多件事
作者: 红龙果    时间: 2013-6-2 11:58
线程是程序中独立的指令流。一个进程至少有一个线程,线程是运行程序所必须的。操作系统会调度线程。
线程有一个优先级、实际上正在处理的程序的位置计数器、一个存储其局部变量的栈
每个线程都有自己的栈,但程序代码的内存和堆由一个进程的所有线程共享。
线程有前台线程和后台线程。只要有一个前台线程在运行,应用程序的进程就在运行。如果多个前台线程在运行,而Main()方法结束了,应用程序的进程仍然是激活的,直到所有的前台线程完成任务后应用程序的进程才停止。
C#中线程默认是前台线程。
设置为后台线程的代码为:myThread.IsBackground=true;
作者: xiangsoft    时间: 2013-6-3 23:42
这个属于操作系统的知识
系统的最小开销是线程
线程从属于进程一个进程可以拥有多个线程

作者: 王洪磊    时间: 2013-6-4 10:54
告诉计算机并行运行某些 新的执行序列同时运行当前的任务,这种序列就称为线程.
这就是线程的工作原理,在不影响你主程序执行的情况下,同时执行别的任务。
通俗形象的来说就像你开车时接电话。线程的提出:你开车的同时听音乐、喝水,开车是你主要的任务,但是同时你也在听音乐或者喝水,听完音乐或者喝完水了,你继续开车。
作者: 一直在努力    时间: 2013-6-4 17:29
一个进程,默认有一个主线程,可以开多个线程。
一个线程只能属于一个进程
作者: popoluno    时间: 2013-6-9 14:18
简单的讲,线程是用来处理事件的,如果只有一个线程,那么该程序只能执行一个事件,如果有多个线程,就可以同时切换执行多个事件




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2