`
youyu4
  • 浏览: 435238 次
社区版块
存档分类
最新评论

Java多线程之建议和问题

 
阅读更多

Java多线程之建议和问题

 

建议

 

1. 给线程取个好名字,好的名字有助于识别线程是拿来干什么的。

 

2. 尽量少使用同步和锁,如果一定要用,就要缩小同步范围:静态块或Lock

 

3. 多用同步类,少用wait(),wait(),常用同步类有:CountDownLatch,Semaphone,CyclicBarrier

 

4. 多用并发集合,少用同步集合

 

 

 

总结

 

1. 多线程之间的数据要分类开,避免使用全局变量(共享数据)

 

2. 如果多线程一定要用共享数据,那一定要做好读写保护(临界区、互斥、加锁)

 

3. 确定你知道你的线程状态,不要径自结束程序而不等待他们结束

 

4. 千万不要在一个临界区中调用 sleep 或 wait 函数,不要长时间锁住资源

 

5. 线程之间的通讯,可以通过互斥消息解决,当然这时工作线程要自己內建消息循环,接收处理消息。

 

 

 

多线程问题

 

1. 一个线程运行中抛异常会怎样?

线程会自己死掉,不会影响其他线程。

 

解决方法:

  1. 在run()中加try catch
  2. 用UncaughtExceptionHandler接口

 

2. 三个线程T1、T2、T3如何有顺序得执行

利用join(),调用的方式是,T3中调用T2.join(),T2中调用T1.join(),这样的执行顺序就会是T1,T2,T3

 

 

3. 检查一个线程是否拥有锁

Thread.holdsLock() = true;

 

 

 

面试题

 

网上一大把

http://www.importnew.com/12773.html

http://ifeve.com/15-java-faq/

http://www.cnblogs.com/dolphin0520/p/3932934.html

http://www.cnblogs.com/fingerboy/p/5352880.html

分享到:
评论

相关推荐

    java多线程分页查询

    ### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...

    java多线程示例

    在Java编程语言中,多线程是核心特性之一,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应...文档“java多线程实例.docx”可能包含具体的示例代码和详细解释,建议参考学习,以加深对Java多线程的理解。

    Java多线程编程技术

    《Java多线程编程核心技术》建议猿友们读两遍,因为其写得没有那么抽象,第一遍有些概念不是很理解,可以先跳过并记录起来,第一遍阅读的目的主要是了解整个架构。第二遍再慢慢品味,并贯穿全部是指点来思考,并将...

    JAVA-多线程 所有文件

    这个“JAVA-多线程 所有文件”压缩包很可能包含了一系列关于Java多线程学习的源代码示例和相关文档。下面我们将深入探讨Java多线程的相关知识点。 1. **线程的概念**:线程是操作系统分配CPU时间的基本单位,一个...

    JAVA多线程JAVA多线程

    总之,Java多线程编程是一个复杂但重要的主题,理解和掌握线程的创建、同步、通信以及如何处理并发问题,对于编写高效、健壮的Java应用程序至关重要。通过熟练运用Java提供的各种并发工具和机制,开发者可以编写出...

    java 多线程 变成 建议

    本文将深入探讨Java多线程中的建议与避免使用的功能,以及如何调试和处理多线程程序中常见的问题。 首先,Java 多线程在早期版本(1.1 和 1.2)中进行了重大改进,不再推荐使用`stop()`, `suspend()`, 和 `resume()...

    java多线程的两种实现

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在Java中,有两种主要的实现多线程的方式:通过`Thread`类和通过实现`Runnable`接口。 1. **通过`Thread`类实现多线程*...

    40个Java多线程问题总结

    ### Java多线程问题总结 #### 一、多线程的作用与优势 1. **发挥多核CPU的优势:** - 当今计算机硬件普遍配备有多核CPU,利用多线程技术能够有效地分配任务到不同的核心上,使得计算资源得到最大化利用。在双核...

    Java多线程文档

    在IT领域,尤其是在Java编程中,多...这篇文档通过深入浅出的方式讲解了Java多线程编程的核心概念、常用工具和最佳实践,对于理解和应用Java多线程有着极大的帮助。无论是初学者还是有经验的开发者,都能从中受益匪浅。

    java多线程代码案例(创建线程,主线程,线程优先级,线程组,线程同步,线程间的通信)

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。本文将深入探讨Java多线程中的关键知识点,包括创建线程、主线程、线程优先级、线程组、线程同步以及线程间的通信。 1....

    Java多线程调用BlockingDeque跑批量数据的例子

    一个线程从A表读数据放入队列 N个线程从队列中取出...支持大数据量跑批,就是个例子,本来是公司发送促销邮件用的,欢迎提意见和建议。 运行DispatcherMain可以测试,库结构自己可以根据code随便改成父子表关系的就行

    java多线程实现月食

    在Java编程中,多线程是一...通过这个项目,不仅能掌握Java多线程的基本用法,还能了解到如何结合图形界面创建动态效果,对于提升Java编程能力及问题解决技巧非常有益。因此,这个项目对新手来说是一个很好的学习起点。

    贪吃蛇的多线程java程序

    贪吃蛇游戏是一款经典的计算机游戏,它通过控制蛇在有限的空间内不断移动并吞噬食物...通过理解和实践这个贪吃蛇的多线程Java程序,开发者可以深入学习Java的并发编程、线程同步以及GUI编程等多个方面,提升编程技能。

    Java 利用多线程实现文件的分片下载

    刚学完多线程和线程池,以及线程爱好者。 使用场景及目标: 大文件的快速下载,经测试在100M带宽的网络下,下载一个40M的文件,不超过两秒钟,当然还得根据自己电脑的配置来讲。 其他说明: 文件如果特别小,而...

    JAVA100例之实例62JAVA多线程

    本实例"JAVA100例之实例62JAVA多线程"将深入探讨如何在Java中创建和管理线程。 在Java中,有两种主要的方式来创建线程: 1. **实现Runnable接口**:这是创建线程的首选方法。通过创建一个实现了Runnable接口的类,...

    Java实现多线程下载源代码

    总的来说,这个项目是一个很好的实践示例,它不仅展示了Java多线程编程的基本概念,还结合了图形用户界面的设计,帮助初学者理解和掌握这两个重要的编程技能。通过分析和运行这个源代码,开发者不仅可以学习到多线程...

    基于环境的java多线程行为比较分析

    ### 基于环境的Java多线程行为比较分析 ...总之,Java多线程的高效利用需要开发者深入了解其内在机制和外部环境的影响,通过合理的策略设计,可以最大程度地发挥多线程的优势,提升应用程序的性能和用户体验。

    Java线程学习和总结

    本文档("Java线程学习和总结.htm")可能包含了更多关于线程的实例、源码分析和常见问题解决方案,你可以通过阅读来进一步加深对Java线程的理解。同时,"Java线程学习和总结.files"目录下的文件可能是与文章相关的...

    java多线程入门

    ### Java多线程入门 #### 一、进程与线程的区别 在理解Java中的多线程之前,我们先来看看进程和线程之间的区别。 - **进程**:进程是程序的一次执行过程,它是系统进行资源分配和调度的一个独立单位。每个进程都...

Global site tag (gtag.js) - Google Analytics