zoukankan      html  css  js  c++  java
  • Part 92 Significance of Thread Join and Thread IsAlive functions

    Thread.Join & Thread.IsAlive functions

    Join blocks the current thread and makes it wait until the thread on which Join method is invoked completes.Join method also has a overload where we can specify the timeout. If we don't specify the timeout the calling thread waits indefinitely(无限期地), until the thread on which Join() is invoked completes. This overloaded Join(int millisecondesTimeout) method returns boolean. True if the thread has terminated(终止) otherwise false.

    Join is particularly(特别地) useful when we need to wait and collect result from a thread execution or if we need to do some clean-up after the thread has completed.

    IsAlive returns boolean. True if the thread is still executing otherwise false.

    public static void Main(string[] args)
            {
                Console.WriteLine("main start");
                Thread t1 = new Thread(ThreadFunction1);
                t1.Start();
                Thread t2 = new Thread(ThreadFunction2);
                t2.Start();
                if(t1.Join(1000))
                {
                    Console.WriteLine("threadfunction1 end");
                }
                else
                {
                    Console.WriteLine("threadfunction1 still working");
                }
                if(t1.IsAlive)
                {
                    for (int i = 1; i < 10; i++)
                    {
                        Console.WriteLine("threadfunction1 still working...");
                        Thread.Sleep(500);                    
                    }
                }
                Console.WriteLine("main end");
            }
    
            public static void ThreadFunction1()
            {
                Console.WriteLine("threadfunction1 start");
                Thread.Sleep(5000);
                Console.WriteLine("threadfunction1 end");
            }
    
            public static void ThreadFunction2()
            {
                Console.WriteLine("threadfunction2 start");
            }
  • 相关阅读:
    [Leetcode]279.完全平方数
    map处理数组 替换item的值
    Immutable数据详解 merge方法及其原理解释
    dev-server的mock配置
    react 国际化 react-i18next
    import * as xxx from 'xxx'
    http-server测试本地打包程序是否有问题
    git 操作
    react hook 官方文档阅读笔记
    吐槽下百度搜索引擎的权重问题
  • 原文地址:https://www.cnblogs.com/gester/p/4870446.html
Copyright © 2011-2022 走看看