多线程简单介绍

标签: 多线程
7人阅读 评论(1) 收藏 举报
分类:
线程 
线程被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。
线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的实现。使用线程节省了 CPU 周期的浪费,同时提高了应用程序的效率。
到目前为止我们编写的程序是一个单线程作为应用程序的运行实例的单一的过程运行的。但是,这样子应用程序同时只能执行一个任务。为了同时执行多个任务,它可以被划分为更小的线程。

线程生命周期
线程生命周期开始于 System.Threading.Thread 类的对象被创建时,结束于线程被终止或完成执行时。
下面列出了线程生命周期中的各种状态:
未启动状态:当线程实例被创建但 Start 方法未被调用时的状况。
就绪状态:当线程准备好运行并等待 CPU 周期时的状况。
不可运行状态:下面的几种情况下线程是不可运行的:
(1)已经调用 Sleep 方法
(2)已经调用 Wait 方法
(3)通过 I/O 操作阻塞
死亡状态:当线程已完成执行或已中止时的状况。

主线程
在 C# 中,System.Threading.Thread 类用于线程的工作。它允许创建并访问多线程应用程序中的单个线程。进程中第一个被执行的线程称为主线程。
当 C# 程序开始执行时,主线程自动创建。使用 Thread 类创建的线程被主线程的子线程调用。您可以使用 Thread 类的 CurrentThread 属性访问线程。
下面的程序演示了主线程的执行:
using System;
using System.Threading;

namespace MultithreadingApplication
{
    class MainThreadProgram
    {
        static void Main(string[] args)
        {
            Thread th = Thread.CurrentThread;
            th.Name = "MainThread";
            Console.WriteLine("This is {0}", th.Name);
            Console.ReadKey();
        }
    }
}





查看评论

浅谈多线程在java程序中的应用

在一个高并发的网站中,多线程是必不可少的。下面先说一下多线程在程序中的作用。 1、提高前端请求的响应速度。当我们执行一个比较耗时的方法时,http请求得不到响应甚至会超时,这时如果业务上允许数据的延...
  • u014035172
  • u014035172
  • 2017年03月29日 10:54
  • 3895

java多线程(一)——简单介绍

基本概念 Thread.currentThread()获取当前线程,函数start  end   sleep(占用处理器,休眠当前线程) 当所有非守护线程停止时,守护线程自动停止 线程优...
  • dananhai381
  • dananhai381
  • 2014年06月05日 19:15
  • 490

<MFC笔记>多线程编程简单实例

在windows下,我们可以调用SDK win32 api来编写多线程的程序,下面就此简单的讲一下: 创建线程的函数 HANDLE CreateThread( LPSECURITY_ATTRIB...
  • EbowTang
  • EbowTang
  • 2014年06月10日 20:51
  • 1746

多线程简介(多线程001)

4个基本概念 同步 之前写程序的时候都是从上到下,从左到右,代码执行顺序1个线程执行多个任务,也是依次执行,1个线程同一时间执行1个任务 异步 多个线程可以 "同时" 执行多个任务 进程 当前计算...
  • wangjunling888
  • wangjunling888
  • 2016年05月09日 14:22
  • 693

多线程 -- 初学简单例子

多线程初学 该模式是生产者--消费者模式。规定了两个任务内部类,Consumer 和Producer .Producer负责给 num 加1,Consumer 负责给num 减 1。run()方...
  • TheSnowBoy_2
  • TheSnowBoy_2
  • 2016年07月01日 22:52
  • 1205

nginx简单介绍

关于网站性能问题,那就到了 NGINX 和 NGINX Plus 发挥作用的时候。一般可以通过以下三种方式改善网站性能:   作 web 服务器,NGINX 最开始的设计初衷就是解决 C10K ...
  • laomoluhaitao
  • laomoluhaitao
  • 2016年08月27日 07:08
  • 368

项目简单介绍

项目背景介绍:   大数据管理系统,主要对开源hadoop大数据组件(后续加入了自研组件,包括odpp,统一sql,vmax等)管理,包括集群安装,卸载,启动停止,状态监控,指标监控,容灾备份,告...
  • jsyxcjw
  • jsyxcjw
  • 2016年08月03日 22:04
  • 867

Spring学习笔记一(Spring简单介绍)

1.前言 从今天起开始写几篇关于Spring的文章,来总结一下,近来的学习情况,也想与大家分享一下学习Spring的心得和体会。希望大家能够多多指正。  2.Spring简单介绍 上...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015年08月09日 22:00
  • 1740

iOS开发多线程-多线程简单介绍

一、进程和线程 1.什么是进程     进程是指在系统中正在运行的一个应用程序   每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内       比如同时打开QQ、Xcode,系统就...
  • u011619223
  • u011619223
  • 2015年11月23日 23:30
  • 370

JVM简单介绍

JVM模型结构 图: 程序计数器(PC): 当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 场景:分支、循环、跳转、异常处理、线...
  • chun16free
  • chun16free
  • 2016年04月15日 14:07
  • 411
    个人资料
    持之以恒
    等级:
    访问量: 2万+
    积分: 4903
    排名: 7271
    最新评论