码迷,mamicode.com
首页 > 编程语言 > 详细

.net网络编程 1.多线程

时间:2014-11-29 00:05:29      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   使用   sp   strong   on   

一 前言

1.为什么网络编程要用到多线程?

     在网络编程中经常会遇到网络阻塞或者网络等待等情况,处理这些情况就会等待很长时间,如可不加多线程处理就会出现执行时间过长,容易出现错误,反应迟钝等等状况,使用多线程后就会大大提高程序的健壮性和伸缩新性能。

2.进程和线程的区别

  一个程序至少有一个进程,形象点说,你开QQ就是打开了一个进程,但是你还要同时和到几个人聊天,打开好几个聊天窗口,每个聊天窗口就是一个线程,(所以同一进程可以划分为若干个线程,每个线程都有自己的寄存器等等,但是代码区是共享的)

 

二 多线程基础

     在学习多线程寄基础前,先给大家一个基础的宏观的概念,在这部分分为8个部分:

    1.启动线程   2.终止线程  3.合并线程  4.线程休眠  5.线程优先级   6.同步   7.线程池应用

    线程的应用用到了Thread类   他的主要方法有:

    1.Abort         终止线程

    2.Interrupt   中断线程

  3.join            阻塞调用线程,直到某个线程终止时为止

  4.Sleep     睡眠

 

先来上的简单的例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread thread = new Thread(new ThreadStart(() => {
                while (true)
                {
                    Thread.Sleep(100);
                    Console.WriteLine("111");
                }
            }));
            thread.Start();    //启动线程
            //thread.Interrupt();  //中断线程  会抛出异常
            //thread.Abort();      //终止线程  

            Thread.Sleep(2000);  //主线阻塞2s

            thread.Suspend();   //线程挂起
            
            Thread thread2 = new Thread(new ThreadStart(() =>
            {
                //thread.Start();   //这里有异常 [线程正在运行或被终止;它无法重新启动。]
                //为什么这里会报错呢?  如果想开始重新启动一个现有的进程 只能将之前的挂起 然后继续执行
                //或者重新New一个thread对象
                thread.Resume();    //唤醒挂起的线程
                while (true)
                {
                    Thread.Sleep(100);
                    Console.WriteLine("222");
                }
            }));

            thread2.Start();    //启动线程2

            Console.ReadLine();
        }
    }
}

  

 

 

 

 

 

 

 

 

 

 

 

.net网络编程 1.多线程

标签:style   blog   io   ar   color   使用   sp   strong   on   

原文地址:http://www.cnblogs.com/tianyong/p/4123820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!