多线程同时new一个类的实例,该类会被初始化多次么?
发布日期:2022-04-11 08:53:00 浏览次数:9 分类:技术文章

本文共 902 字,大约阅读时间需要 3 分钟。

示例demo:

mport java.util.concurrent.CountDownLatch;import java.util.concurrent.TimeUnit;import java.util.stream.IntStream;public class Demo {
static CountDownLatch countDownLatch = new CountDownLatch(6); static class Parent {
static {
try {
System.out.println(System.currentTimeMillis() + "---Parent类被初始化"); TimeUnit.SECONDS.sleep(6); } catch (InterruptedException e) {
e.printStackTrace(); } } } public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 6; i++) {
new Thread(() -> {
new Parent(); countDownLatch.countDown(); }).start(); } countDownLatch.await(); System.out.println("main函数结束"); }}

运行结果:

在这里插入图片描述
从运行结果可以发现,直到主线程运行结束,6个子线程也运行结束,Parent类也只被初始化了一次。

转载地址:https://genjiejie.blog.csdn.net/article/details/107414200 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:多线程同步
下一篇:多线程合集(二)---异步的那些事,async和await原理抛析

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月08日 14时12分48秒