zoukankan      html  css  js  c++  java
  • 多线程笔记

    用了很久的多线程了,今天记录下多线程的常用方法。

    当创建一个线程时,就会消耗几百毫秒cpu,创建一些新的私有局部变量栈。每个线程还消耗(默认)约1 MB的内存。线程池通过共享和回收线程,允许在不影响性能的情况下启用多线程。
    每个.NET程序都有一个线程池,线程池维护着一定数量的工作线程,这些线程等待着执行分配下来的任务。

    线程池线程注意点:

    1 线程池的线程不能设置名字(导致线程调试困难)。 2 线程池的线程都是background线程 3 阻塞一个线程池的线程,会导致延迟。 4 可以随意设置线程池的优先级,在回到线程池时改线程就会被重置。

    通过Thread.CurrentThread.IsThreadPoolThread.可以查看该线程是否是线程池的线程。

    使用线程池创建线程的方法:

    • Task
    • ThreadPool.QueueUserWorkItem
    • Asynchronous delegates
    • BackgroundWorker

    Task.Factory.StartNew (Go);

    //Go方法的参数data此时为空  

    ThreadPool.QueueUserWorkItem (Go);

    //Go方法的参数data此时为123  

    ThreadPool.QueueUserWorkItem (Go, 123);

    参考https://www.cnblogs.com/JoeSnail/p/6433290.html

  • 相关阅读:
    Day12 文件操作
    Day11 集合、集合操作
    Day10 【小程序】商城管理(购物车小程序的增强版)
    Day8 字符串操作
    Day9 字典操作
    文件操作
    【python练习】购物车程序
    2296 寻找道路
    2661 信息传递(tarjan&拓扑)
    【模板】LCA(tarjan)
  • 原文地址:https://www.cnblogs.com/KQNLL/p/9384797.html
Copyright © 2011-2022 走看看