thread count_ThreadPool

thread count_ThreadPoolThreadPool类提供一个线程池,该线程池可用于发送工作项、处理异步I/O、代表其他线程等待以及处理计时器。许多应用程序创建的线程都要在休眠状态中消耗大量时间,以等待事件发生。其他线程可能进入休眠状态,只被定期唤醒以轮询更改或更新状态信息。线程池通过为应用程序提供一个由系统管理的辅助线程池使您可以更为有效地使用线程。一个线程监视排到线程池的若干个等待操作的状态。当一个等待操作

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

ThreadPool 类 提供一个线程池,该线程池可用于发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe许 多应用程序创建的线程都要在休眠状态中消耗大量时间,以等待事件发生。其他线程可能进入休眠状态,只被定期唤醒以轮询更改或更新状态信息。线程池通过为应 用程序提供一个由系统管理的辅助线程池使您可以更为有效地使用线程。一个线程监视排到线程池的若干个等待操作的状态。当一个等待操作完成时,线程池中的一 个辅助线程就会执行对应的回调函数。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe注意

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe托管线程池中的线程为后台线程,即它们的 IsBackground 属性为 true。这意味着在所有的前台线程都已退出后,ThreadPool 线程不会让应用程序保持运行。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe也可以将与等待操作不相关的工作项排列到线程池。若要请求由线程池中的一个线程来处理工作项,请调用 QueueUserWorkItem 方法。此方法将对将被从线程池中选定的线程调用的方法或委托的引用用作参数。一个工作项排入队列后就无法再取消它。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe计时器队列中的计时器以及已注册的等待操作也使用线程池。它们的回调函数也会排列到线程池。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe每个进程都有一个线程池。线程池的默认大小为每个可用处理器有 25 个线程。使用 SetMaxThreads 方法可以更改线程池中的线程数。每个线程使用默认的堆栈大小并按照默认的优先级运行。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believeWaitCallback 委托 表示线程池线程要执行的回调方法。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believeWaitCallback 表示要在 ThreadPool 线程上执行的回调方法。创建委托,方法是将回调方法传递给 WaitCallback 构造函数。您的方法必须具有此处所显示的签名。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe通过将 WaitCallback 委托传递给 ThreadPool.QueueUserWorkItem 来将任务排入队列以便执行。您的回调方法将在某个线程池线程可用时执行。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe注意

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believeVisual Basic 用户可以省略 WaitCallback 构造函数,在向 QueueUserWorkItem 传递回调方法时只需使用 AddressOf 运算符即可。Visual Basic 将自动调用正确的委托构造函数。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe如果要将信息传递给回调方法,请创建包含所需信息的对象,并在将任务排入队列以便执行时将它传递给 QueueUserWorkItem。每次执行您的回调方法时,state 参数都包含此对象。

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe

ThreadPool,WaitCallback,QueueUserWorkItem - xue_huashan - When you believe有关如何使用回调同步线程池线程的更多信息,请参见 托管线程池。

代码:

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Threading;

namespace Thd

{

    static class Program

    {

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main()

        {

            Console.WriteLine(“Main thread: Queuing an asynchronous operation.”);

            AutoResetEvent asyncOpIsDone = new AutoResetEvent(false);

            ThreadPool.QueueUserWorkItem(new WaitCallback(MyAsyncOperation), asyncOpIsDone);

            Console.WriteLine(“Main thread: Performing other operations.”);

            //

            Console.WriteLine(“Main thread: Waiting for asynchronous operation to complete.”);

            asyncOpIsDone.WaitOne();

        }

        // The callback method’s signature MUST match that of a System.Threading.WaitCallback

        // delegate (it takes an Object parameter and returns void)

        static void MyAsyncOperation(Object state)

        {

            Console.WriteLine(“WorkItem thread: Performing asynchronous operation.”);

            //

            Thread.Sleep(5000);    // Sleep for 5 seconds to simulate doing work

            // Signal that the async operation is now complete.

            // 同步操作已经完成的操作

            ((AutoResetEvent)state).Set();

        }

    }

}

调用((AutoResetEvent)state).Set();后,主线程中的asyncOpIsDone.WaitOne();就结束了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189985.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 机器学习的分类与主要算法对比[通俗易懂]

    机器学习的分类与主要算法对比[通俗易懂]机器学习的分类与主要算法对比重要引用:AndrewNgCoureraMachineLearning;从机器学习谈起;关于机器学习的讨论;机器学习常见算法分类汇总;LeNetHomepage;pluskidsvm  首先让我们瞻仰一下当今机器学习领域的执牛耳者:  这幅图上的三人是当今机器学习界的执牛耳者。中间的是GeoffreyHinton,加拿大多伦多大学的教授,如今被聘为“Goo

    2022年6月18日
    34
  • c++链式前向星_链式基数排序图解

    c++链式前向星_链式基数排序图解图的存储方法很多,最常见的除了邻接矩阵、邻接表和边集数组外,还有链式前向星。链式前向星是一种静态链表存储,用边集数组和邻接表相结合,可以快速访问一个顶点的所有邻接点,在算法竞赛中广泛应用。链式前向星存储包括两种结构:边集数组:edge[],edge[i]表示第i条边; 头结点数组:head[],head[i]存以i为起点的第一条边的下标(在edge[]中的下标)structnode{intto,next,w;}edge[maxe];//边集数组,边数一般要设置比ma…

    2025年7月17日
    0
  • 数字证书原理,公钥私钥加密原理 – 因为这个太重要了[通俗易懂]

    文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!1、基础知识这部分内容主要解释一些概念和术语,最好是先理解这…

    2022年4月11日
    33
  • GridLayout在API21之前的兼容

    GridLayout在API21之前的兼容问题:GridLayout在API21时引入了android:layout_columnWeight和android:layout_rowWeight来解决平分问题,但是api21前怎么办呢?解决:1.引入兼容包:compile’com.android.support:gridlayout-v7:23.0.0’2.为GridLayout设置权重:app:layout_column…

    2022年6月3日
    29
  • ARM的六大类指令集—LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM

    ARM的六大类指令集—LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM汇编指令:LDR、LDRB、LDRH、STR、STRB、STRH

    2022年6月16日
    36
  • js解析PSD文件,Java处理psd文件智能图层

    js解析PSD文件,Java处理psd文件智能图层现在市面上很多的webapp都提供模板功能,所谓模板就是一系列元素的集合,模板的制作一般都需要设计师先在Photoshop等软件中制作好设计好,然后再一定的方式来还原设计稿,要么需要编码要么需要在某些应用中按照设计稿重画设计生成模板数据,都还是比较麻烦的,我们能不能通过psd文件直接生成模板呢?要做到这点我们就需要解析psd文件,而psd文件是Photoshop软件的涉及保存文件,浏览器并不能直接识别,所幸的是psd.js赋予了我们这样的能力。foxpsd是一个用来解析PhotoShop的PSD文件的

    2022年6月7日
    189

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号