`
huangyongxing310
  • 浏览: 491934 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

java 使用锦集

    博客分类:
  • Java
阅读更多
java 使用锦集

java join
1.thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。
2.就是主线程要等到join进来的线程运行完毕或等待多长时间(如果join有时间参数)后再运行主线程。


Java中Lock接口比synchronized块
1.ock接口在多线程和并发编程中最大的优势是它们为读和写分别提供了锁,它能满足你写像ConcurrentHashMap这样的高性能数据结构和有条件的阻塞。
2.synchronized是不管读和写都会进行阻塞


java中wait和sleep方法的不同
1.最大的不同是在等待时wait会释放锁,而sleep一直持有锁。Wait通常被用于线程间交互,sleep通常被用于暂停执行。
2.类锁与对象锁是不同作用空间的,类锁只对静态方法有效,对象锁是对所有要同步的方法(非同步)
3.http://langgufu.iteye.com/blog/2152608
4.wait是会释放这个类或对象同步锁的,而sleep不会,
5.wait线程会挂起并等待notify释放这个类或对象同步锁,如果一直没有释放wait会死等。
6.Wait通常被用于线程间交互,sleep通常被用于暂停执行。


java中 阻塞队列、非阻塞队列、普通队列的区别
1.阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。


notify(),notifyAll()区别
1.notify(),notifyAll()都是要唤醒正在等待的线程,前者明确唤醒一个,后者唤醒全部。
2.当程序不明确知道下一个要唤醒的线程时,需要采用notifyAll()唤醒所有在wait池中的线程,让它们竞争而获取资源的执行权,
3.但使用notifyAll()时,会出现死锁的风险,因此,如果程序中明确知道下一个要唤醒的线程时,尽可能使用notify()而非notifyAll()。


为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法
1.当你调用start()方法时你将创建新的线程,并且执行在run()方法里的代码。但是如果你直接调用run()方法,它不会创建新的线程也不会执行调用线程的代码。
2.start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。
3.run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。


Java中你怎样唤醒一个阻塞的线程
1.如果线程因为调用wait()、sleep()、或者join()方法而导致的阻塞,你可以中断线程,并且通过抛出InterruptedException来唤醒它。


Java中CycliBarriar和CountdownLatch有什么区别
1.这两个的区别是CyclicBarrier可以重复使用已经通过的障碍,而CountdownLatch不能重复使用。
2.一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。直到所有都到达这个点再开始运行
3.CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。
(CyclicBarrier):http://blog.csdn.net/shihuacai/article/details/8856407


Executor和Executors的区别























分享到:
评论

相关推荐

    java案例锦集第二版代码

    Java案例锦集第二版代码是针对Java编程语言的一份学习资源,主要以NetBeans作为开发平台。这个资源包含了丰富的实例,旨在帮助初学者和有一定经验的开发者深入理解Java语言的各种特性和应用。NetBeans是一个开源的...

    Java案例开发锦集

    目录 第一章 Java与Applet 案例一 图形按钮 案例二 模拟工具条 案例三 Applet与Applet在页内的通信 案例四 电子相册 案例五 百页窗效果 案例六 波浪彩虹文字 案例七 3D立体渐层文字...

    JAVA历年面试题锦集[有参考答案]

    【JAVA历年面试题锦集】是一份集合了Java程序员面试中常见问题的资源,涵盖了广泛的知识点,旨在帮助求职者准备面试,提升成功找到Java编程工作的机会。这份文档可能包括了从基础语法到高级概念,从理论知识到实战...

    重点知识锦集CoreJava

    【Java核心知识锦集】 Java是一种广泛使用的编程语言,以其跨平台性、安全性、健壮性和免费开源等特性而受到青睐。它具有简单的语法结构,动态更新的Java虚拟机(JVM),使得开发者能够高效地编写和运行代码。 1. ...

    JAVA开发实例锦集

    这个名为"JAVA开发实例锦集"的压缩包显然包含了丰富的Java编程实践案例,是学习和提升Java技能的宝贵资源。现在,我们将深入探讨这些可能包含的知识点。 1. **基础语法**:Java实例通常会涵盖基础语法,如变量声明...

    Java案例开发集锦代码锦集

    Java案例开发集锦代码锦集

    java面试笔试锦集

    这个"java面试笔试锦集"很可能是包含了一系列常见的Java面试问题和解答的文档集合,旨在帮助求职者准备这些挑战。以下是一些Java面试和笔试中可能涉及的关键知识点: 1. **基础语法**:这是所有Java程序员的基础,...

    java面试题锦集.zip

    【Java面试题锦集】 Java作为一种广泛使用的编程语言,在软件开发和互联网行业中占据了核心地位,因此,对于求职者来说,掌握扎实的Java知识并能在面试中流利地解答相关问题至关重要。这份“java面试题锦集.zip”...

    Java笔试训练题锦集

    Java笔试训练题锦集是针对Java开发者准备的面试与笔试复习资料,涵盖了广泛的Java基础知识以及JSP相关知识。这份资源旨在帮助你系统性地复习和检验自己的Java技能,特别是那些在实际开发中容易被忽视的细节。以下是...

    锦集499篇关于java学习的帖子

    这个名为“锦集499篇关于java学习的帖子”的资源集合,显然是为了帮助初学者和有经验的开发者深入理解Java语言及其应用。这些帖子涵盖了从入门到高级的各个层面,包括基础语法、编程技巧、设计模式以及实际项目开发...

    Java基础面试题锦集(附答案)

    Java作为一门广泛使用的编程语言,其面试题涵盖了基础语法、面向对象特性、内存管理、集合框架、多线程等多个方面。以下是对这些知识点的详细解释: 1. **final, finally, finalize的区别**: - `final`:用于声明...

    java面试题锦

    Java面试题锦是一个汇集了Java编程语言及其相关技术面试题目的资源集合,旨在帮助求职者或开发者准备面试,提升对Java技术栈的理解和掌握。这个压缩包中的文档可能包含了从基础到高级的各种Java问题,涵盖了核心语法...

    java面试题锦集 之 九阴真经

    - GC是Java的自动内存管理系统,负责回收不再使用的对象所占用的内存,避免内存泄漏。 - 有GC是因为Java程序员无需手动管理内存,简化了编程模型,但同时也可能导致性能影响。 7. **String 对象创建**: 创建`...

    Java就业面试教程锦集2

    Java就业面试教程锦集2是针对Java开发者求职者的一份宝贵资源,包含了丰富的面试准备材料、教程和源代码。这份资料旨在帮助Java程序员提升技能,理解面试中的常见问题,并掌握应对策略,从而在竞争激烈的就业市场中...

    java与j2ee面试锦集

    13. **goto**:Java中没有goto关键字,但它被保留以防未来可能使用。 这些面试题涵盖了Java语言的核心特性和编程实践,对于理解Java的内存管理、面向对象设计、并发编程等方面至关重要。掌握这些知识点不仅有助于...

    Java初学者编程练习锦集(1)

    Java初学者编程练习锦集(1)

    JAVA工程求职信模板锦集六篇.doc

    JAVA工程求职信模板锦集六篇 本资源为六篇JAVA工程求职信模板的锦集,旨在帮助JAVA工程专业学生和从业人员编写自己的求职信。每一篇模板都详细介绍了作者的个人背景、技能、经验和职业目标,从而展示了作者的职业...

    2023年JAVA面试题锦集.doc

    Java编程语言以其强大的功能和简洁的语法在IT领域占据着重要的地位。对于Java开发者来说,理解和掌握相关的面试知识点至关重要。以下是一些Java面试中的常见问题及其详细解释: 1. **异常处理**: Java中的异常...

Global site tag (gtag.js) - Google Analytics