多线程:检索线程对象

Posted 25miao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程:检索线程对象相关的知识,希望对你有一定的参考价值。

class Program9
    {
        //检索线程对象
        //停止所有前台线程后,运行时将停止所有后台线程,并关闭。
        static Object obj = new Object();
        
        private static void ShowThreadInformation(Object state)
        {
            lock (obj)
            {
                var th = Thread.CurrentThread;
                Console.WriteLine("Managed thread #{0}: ", th.ManagedThreadId);
                Console.WriteLine("   Background thread: {0}", th.IsBackground);
                Console.WriteLine("   Thread pool thread: {0}", th.IsThreadPoolThread);
                Console.WriteLine("   Priority: {0}", th.Priority);
                Console.WriteLine("   Culture: {0}", th.CurrentCulture.Name);
                Console.WriteLine("   UI culture: {0}", th.CurrentUICulture.Name);
                Console.WriteLine();
            }
        }
        static void Main(string[] args)
        {
            //从非托管代码进入托管的执行环境的所有线程--->后台线程
            //替代:在线程池线程上自动执行基于任务的异步操作。 使用基于任务的异步操作Task并Task<TResult>类以实现基于任务的异步模式。
            //线程池创建的线程都为 后台线程
            ThreadPool.QueueUserWorkItem(ShowThreadInformation);
            //主线程调用Thread构造函数创建的线程都为 前台线程
            var th1 = new Thread(ShowThreadInformation);
            th1.Start();
            var th2 = new Thread(ShowThreadInformation);
            //主线程调用Thread构造函数创建的线程 可单独设置为后台线程
            th2.IsBackground = true;
            th2.Start();
            Thread.Sleep(500);
            //主线程直接调用的均为 前台线程
            ShowThreadInformation(null);
            Console.ReadLine();
        }
    }

 

以上是关于多线程:检索线程对象的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程——Lock&Condition

Java多线程与并发库高级应用-工具类介绍

Java多线程与并发库高级应用-工具类介绍

多个请求是多线程吗

多个用户访问同一段代码

线程学习知识点总结