zoukankan      html  css  js  c++  java
  • 多线程学习系列:(一)前言

          作为一个ASP.NET开发人员,在之前的开发经历中接触多线程编程的机会并不是很多,但是随着.NET 4.0的发布临近,我越来越感受到未来的1-2年中并行计算将会有很大的应用。于是决定通过写日志的方式来总结一下.NET 3.5下的多线程编程进而引入.NET 4.0提供的新的并行库以及新的并行编程模式和编程的思维方式。

      个人觉得在日常的编程中对于ASP.NET程序员来说使用多线程编程不是很多,其实我们无时无刻不在享受多线程的优势。首先,WEB服务器环境就是一个多线程环境,每一个请求都是独立的线程,如果没有多线程很难想象只能同步处理一个请求的WEB服务器有什么用,类似,我们的数据库也应该是一个多线程环境。对于Windows应用程序的程序员来说恐怕就很难不接触多线程了,最简单的就是我们会新开线程去做一些耗时的操作,这样就可以避免UI停止响应,在操作结束后再把操作结果应用在主线程的控件上。虽然说这样的应用是多线程,甚至很多程序员习惯什么操作都新开一个线程去做,但是我觉得这样的多线程应用的思维还停留在单核时代,在多核时代,我们确实可以让任务实际的并行执行而不是看上去并行执行。

      首先来说说概念,进程和线程的基本的概念不用多说,自然我们也能理解一个进程至少包含一个线程。通过在一个进程中开启多个线程,我们就可以让一个程序在同一时间看上去能做多个事情,比如可以在接受用户响应的时候进行一些计算。在以前处理器往往只有一个核心,也就是说在同一时间,处理器只能做一件事情。那么怎么实现之前说的多个线程同时执行呢。其实这个同时只是表面上看上去同时,本质上多个线程依次占用处理器的若干时间片,大家轮流使用其资源,由于这个时间片非常短,所以在一个长的时间看来似乎是几个线程同时得到了执行。

  • 相关阅读:
    mongodb 初学 意外 连接服务器异常(Connection refused)
    mongodb 关闭服务器
    Redis 入门指令
    mongodb 在 Ubuntu系统上的安装及卸载
    Java 使用 Redis
    随笔 -- IO -- Socket/ServerSocket -- 系统概述
    java enum(枚举)使用详解 + 总结
    Java -- IO -- 目录
    Java 流(Stream)、文件(File)和IO -- Java ByteArrayInputStream类
    INSERT INTO .. ON DUPLICATE KEY UPDATE ...
  • 原文地址:https://www.cnblogs.com/zhanghaichang/p/1967258.html
Copyright © 2011-2022 走看看