`
OracleX
  • 浏览: 124270 次
  • 性别: Icon_minigender_1
  • 来自: 地球
社区版块
存档分类
最新评论

解决Join方法的疑惑

阅读更多

 很长时间对join方法感到疑惑,不明白到底是谁要阻塞,谁要继续执行(线程这部分亟需加强)。今天和一网友交流后疑惑得到解决,在此表示感谢Stephen_Liu

 假如在main方法中有个线程A,执行了A.join(),那么线程A继续执行,而main线程这阻塞在A.join()处,直到线程A执行完毕并正常退出,此时main方法中的A.join()才返回,然后继续执行A.join()后面的代码。

public class ThreadJoin extends Thread {
public static int n = 0;

static synchronized void inc() {
        n++;
    }

public void run() {
try {
for (int i = 0; i < 10; i++) {
                inc();
                sleep(3);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

public static void main(String[] args) throws Exception {
        Thread thread[] = new Thread[100];
for (int i = 0; i < thread.length; i++) {
            thread[i] = new ThreadJoin();
        }
for (int i = 0; i < thread.length; i++) {
            thread[i].start();
        }
for (int i = 0; i < thread.length; i++) {
             thread[i].join();  //不使用这句话n是个随机数,使用n=1000
        }
        System.out.println("n=" + ThreadJoin.n);
    }
}

 

 

分享到:
评论

相关推荐

    Thread线程的基础知识及常见疑惑点总结

    了解Thread类的基本概念和方法对于理解和使用Java多线程至关重要,这不仅有助于编写高效的并发程序,也有助于解决可能出现的并发问题。同时,熟悉这些基础知识也能更好地运用线程池和多线程框架,如ExecutorService...

    课后题答案

    在《数据库系统教程第三版》中,由施伯乐等主编的这部教材深入浅出地介绍了数据库的基本理论、设计方法和应用实践。课后题是学习过程中巩固知识、提升理解的关键环节,这份"课后题答案"文档将为我们解答学习过程中的...

    九年级英语上册期中复习.ppt

    - 解决这些问题的方法包括找笔友(find a pen pal)、记笔记学习新词(write new words in notebook)、参加英语俱乐部(join an English language club)、每日写英语日记(write English diary)、多听...

    mysql 参考手册(详解关键字的功能和涉及到的问题)

    这份“MySQL参考手册”是理解数据库操作、优化和管理的重要资源,尤其对初学者来说,它能解答许多在学习过程中遇到的疑惑。 首先,MySQL的关键字是数据库语言SQL中的重要组成部分,它们用于执行各种数据库操作,如...

    23编程综合练习内教案.doc

    这个任务要求学生利用已学的数据库知识,对销售数据进行统计分析,可能涉及到SQL查询的综合应用,包括SELECT、JOIN、GROUP BY、HAVING等子句的组合使用。 【教学过程】 1. **布置任务**:教师根据任务工单和口头...

    第十五周第二次会议记录1

    在解决疑惑方面,会议可能涉及了如何处理多语言标签、如何定义和控制标签的规范性,以及如何处理动态变化的商品特性等问题。多语言标签需要考虑国际化的需求,可能需要额外的翻译表来支持;标签的规范性可以通过建立...

    非常好的LinQ学习资料

    5. **问答和论坛讨论**:可能包含了关于LinQ的常见问题解答和社区讨论,有助于解决学习过程中的疑惑。 通过深入学习这些资料,你将能够熟练掌握LinQ,提升你的.NET开发技能,无论是处理对象数据、数据库数据还是XML...

    javaEE MYSQL教程.zip

    此外,解决SQL疑惑的部分可能包含了解答在实际操作中遇到的问题,比如性能优化、索引的使用、事务处理等。 对于程序员来说,掌握SQL金典是至关重要的,因为这将帮助他们写出更有效、更高效的查询。这些文档可能会...

    ORACLE常用傻瓜问题1000问全集

    "ORACLE常用傻瓜问题1000问全集"显然是一部针对Oracle初学者和中级用户的问题集,旨在帮助他们解决日常遇到的各种疑惑。下面我们将深入探讨其中可能涉及的一些关键知识点。 1. **Oracle基础知识**: - 数据库概念...

    mysqlsqljc

    在实践中,优化SQL查询性能是另一个关键点,包括避免全表扫描、合理设计数据库结构和索引、使用EXPLAIN分析查询执行计划等方法。同时,了解如何使用SQL标准(如SQL92、SQL99等)以及MySQL特有的语法和功能,将有助于...

    sql帮助文件

    本SQL帮助文件是为了解决你在编程过程中遇到的疑惑和问题,提供快速查找和学习SQL语法及用法的便利途径。 首先,SQL的核心功能包括数据查询、数据插入、更新和删除,以及数据库结构的创建和修改。在数据查询方面,`...

    基础教程_SQL_Server_2008

    随着对T-SQL的理解加深,读者将学习如何处理和操纵数据,包括插入、更新、删除记录,以及使用JOIN和子查询进行复杂的数据检索。最后,本书将介绍报告服务,教授如何在SQL Server 2008上创建和呈现数据报表,满足业务...

    (完整word版)LinuxPthread深入解析.doc

    尽管如此,线程之间共享进程的内存空间,包括全局变量和堆内存,这使得线程间通信更为便捷,但也引入了数据一致性的问题,需要通过同步机制(如互斥量、条件变量等)来解决。 2. pthread创建与终止 pthread库提供了...

    6602524000-TEMAP

    4. **数组方法**:push、pop、shift、unshift、slice、splice、concat、join、map、filter、reduce等。 5. **ES6及之后的新特性**:模板字符串、解构赋值、let和const、箭头函数、类和模块、async/await等。 6. **...

    高中必修一至必修五单词表.doc

    疑惑:用故事或魔法等吸引人的注意力。 17. **on purpose** - 故意:表示行为是有意为之。 18. **dusk** - 黄昏傍晚:日落前后的一段时间,天色渐暗。 19. **thunder** - 打雷雷鸣:气象现象,常伴随闪电。 20. **...

    来自IBM的(POSIX).

    多线程间需要通过同步机制来解决资源共享和同步问题,如互斥锁、条件变量等。 **1.7 线程的数据库、数据相关处理** 在多线程环境下访问数据库或其他数据资源时,需要采取措施防止并发冲突。 #### 线程的基本管理...

    多线程编程技术《Programming Multithreaded applications

    等待线程结束是为了确保主线程在子线程完成工作后再继续执行,可以通过`join()`等函数实现。 ##### 让进程先处理另一个线程 有时需要调整线程的执行顺序,例如让进程优先执行某个线程,可以通过调度策略来实现。 #...

    2017年最新人教英语七年级下册单词表中文版.pdf

    滑稽好笑的):异常或与众不同,可能引发好奇或疑惑。 22. exercise(锻炼;练习):提高身体或技能的活动。 23. on the weekend(在周末):周末进行的活动。 24. best(最好的(地)):形容词最高级,表示最好或...

Global site tag (gtag.js) - Google Analytics