首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

新线程的thread.start()方法是否立即返回到当前线程?

新线程的thread.start()方法不会立即返回到当前线程。当调用thread.start()方法时,新线程会被创建并开始执行,但是当前线程会继续执行下面的代码,而不会等待新线程执行完毕。新线程的执行时间取决于系统调度和线程优先级等因素。如果需要等待新线程执行完毕,可以使用thread.join()方法来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • c#之task与thread区别及其使用

    1.什么是thread 当我们提及多线程的时候会想到thread和threadpool,这都是异步操作,threadpool其实就是thread的集合,具有很多优势,不过在任务多的时候全局队列会存在竞争而消耗资源。thread默认为前台线程,主程序必须等线程跑完才会关闭,而threadpool相反。 总结:threadpool确实比thread性能优,但是两者都没有很好的api区控制,如果线程执行无响应就只能等待结束,从而诞生了task任务。 2.什么是task task简单地看就是任务,那和thread有什么区别呢?Task的背后的实现也是使用了线程池线程,但它的性能优于ThreadPoll,因为它使用的不是线程池的全局队列,而是使用的本地队列,使线程之间的资源竞争减少。同时Task提供了丰富的API来管理线程、控制。但是相对前面的两种耗内存,Task依赖于CPU对于多核的CPU性能远超前两者,单核的CPU三者的性能没什么差别。

    02

    Java面试——多线程

    【1】join 让主线程等待子线程运行结束后再继续运行:join方法中如果传入参数,则表示这样的意思:如果线程A 中掉用线程B的 join(10),则表示线程A 会等待线程B 执行10毫秒,10毫秒过后,A、B线程并行执行。需要注意的是,jdk规定,join(0)的意思不是 线程A等待线程B 0秒,而是线程A 等待线程B 无限时间,直到线程B 执行完毕,即join(0)等价于join()。(其实join()中调用的是join(0)) 【2】利用并发包里的 Excutors的 newSingleThreadExecutor产生一个单线程的线程池,而这个线程池的底层原理就是一个先进先出(FIFO)的队列。代码中 executor.submit依次添加了123线程,按照 FIFO的特性,执行顺序也就是123的执行结果,从而保证了执行顺序。 【3】使用 CountDownLatch 控制多个线程执行顺序 cutDown()方法和 await()方法:可以通过调用CounDownLatch对象的cutDown()方法,来使计数减1;如果调用对象上的await()方法,那么调用者就会一直阻塞在这里,直到别人通过cutDown方法,将计数减到0,才可以继续执行。

    02
    领券