`
lzj0470
  • 浏览: 1273058 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java synchronized 注意项

阅读更多
synchronized(ResultQueue){
    				if(!ResultQueue.isEmpty()) {//如果此 collection 不包含元素,则返回 true
    					url = ResultQueue.poll();//检索并移除此队列的头,如果此队列为空,则返回 null
    				}
    			}

 需要对某个对象同步的时候,一定要做到不要跟非该对象的操作不要去做。比如下面方式

synchronized(ResultQueue){
    				if(!ResultQueue.isEmpty()) {//如果此 collection 不包含元素,则返回 true
    					url = ResultQueue.poll();//检索并移除此队列的头,如果此队列为空,则返回 null
    				}else{


			 Thread.sleep(1000*60*60);
					continue;

}
    			}

 

看看上面的代码,这样的话,该对象ResultQueue持有的时间就是1个小时啦。如果其他地方也对这个对象操作的话,那么其他地方的操作都是无效。

分享到:
评论

相关推荐

    JAVA编写的多线程小弹球测试

    在Java编程领域,多线程是一项重要的技术,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在“JAVA编写的多线程小弹球测试”项目中,开发者利用Java语言创建了一个生动有趣的多线程应用,即一个模拟...

    java基础知识点

    LinkedList 插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8. EJB 是基于哪些技术实现的?: EJB 包括 SessionBean、EntityBean、MessageDrivenBean,基于 JNDI、RMI、JAT 等技术实现。SessionBean ...

    java线程实战手册

    6. **线程中断与停止**:正确地停止线程是一项挑战,Java提供了interrupt()方法来请求线程中断,但需要注意的是,这并不一定能立即停止线程,需要配合中断标志进行检查和处理。 7. **线程池**:Executor框架和...

    Java并发编程学习笔记

    在Java并发编程中,多线程编程是指同时运行多个线程(Thread),每个线程可以执行不同的任务,或者协同完成同一项任务的不同部分。由于线程共享同一进程的内存空间,因此在多线程编程中特别需要关注线程安全(Thread...

    Java性能优化技巧集锦

    4. 并发编程:正确使用synchronized和 volatile关键字,了解并发工具类如ConcurrentHashMap和CountDownLatch。 5. 类加载器:避免类加载器泄露,合理管理类加载。 总结,Java性能优化是一个全方位的过程,需要从...

    java自动生成id策略

    在Java编程中,自动生成ID是一项常见的需求,特别是在数据库记录、分布式系统节点标识等领域。"java自动生成id策略"指的是设计并实现一种机制,确保在多线程环境下能够高效、唯一地生成ID。这里我们将详细探讨这个...

    Java多线程编程实例

    在Java编程领域,多线程是一项至关重要的技术,它使得程序可以同时执行多个任务,从而提高了系统的效率和响应性。本书“Java多线程编程实例”深入浅出地讲解了如何在Java环境中实现多线程操作,尽管出版时间较早,但...

    Java多线程编程详解

    在Java多线程编程中,线程同步是一项至关重要的技术,它主要用于解决多线程环境中的资源共享问题。由于同一进程中的多个线程共享同一片内存空间,这就意味着它们可以访问相同的变量,这种共享虽然提高了效率和便利性...

    java 公式计算汇总,直接调用其方法即可进行运算

    在Java编程语言中,公式计算是一项常见的需求,特别是在科学计算、数据分析、数学建模等领域。为了简化这方面的代码编写,开发者经常会将各种计算操作封装成方法,以便在项目中直接调用。标题“java 公式计算汇总,...

    CEAC JAVA 真题 第二套

    请注意,由于题目答案的不确定性,这里提供的知识点是基于Java语言的一般性总结,实际解题时应结合具体题目进行分析。在复习和练习过程中,不仅要理解概念,还要通过编写代码实践来巩固技能。同时,对于CEAC的认证...

    Java程序员常见笔试题

    Vector 由于使用了 synchronized 方法(线程安全),通常性能上较 ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入...

    JAVA进程管理模拟

    在Java编程语言中,进程管理是一项关键任务,它涉及到如何有效地调度、控制和监控应用程序的执行。本项目“JAVA进程管理模拟”旨在通过一个图形用户界面(GUI)来直观地展示进程优先级如何影响进程的执行顺序和资源...

    多线程java买票系统

    在Java编程中,多线程是一项关键技能,尤其在开发高效、并发的系统时更为重要。这个"多线程java买票系统"是用于教学目的,展示了如何在Java中实现多线程技术来模拟购票过程。下面将详细介绍相关知识点。 1. **线程...

    java 程序员(工程师)面试大全

    ArrayList 和 Vector 都是使用数组方式存储数据,Vector 由于使用了 synchronized 方法(线程安全),通常性能上较 ArrayList 差,而 LinkedList 使用双向链表实现存储,插入数据时只需要记录本项的前后项即可。...

    Java满天繁星课程实验

    此外,为了确保线程间的协调,你可能还需要使用synchronized关键字、wait()、notify()等机制,或者使用java.util.concurrent包中的高级并发工具。在处理多线程时,理解并发控制和同步是非常重要的,以防止竞态条件和...

    Java 编码标准(PDF)

    Java编码标准是软件开发中的一项重要规范,它旨在提高代码质量、可读性以及团队间的协作效率。这份PDF文档很可能是Oracle公司或者一些知名的Java社区制定的编程规范,旨在为Java开发者提供一套统一的编码指南。以下...

    Java多线程赛马游戏.zip

    在Java编程领域,多线程是一项关键技能,尤其在开发高性能、并发性强的应用时更为重要。本项目"Java多线程赛马游戏"提供了一个实际的案例,通过模拟赛马比赛来展示如何在Java中使用多线程技术。下面将详细讲解其中...

    JAVA多线程的一个带UI界面的例子

    在Java编程中,多线程是一项关键特性,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在GUI(图形用户界面)应用程序中,多线程尤为重要,因为主线程通常负责处理用户交互,而其他后台任务则应在...

    java写的简单聊天程序

    在Java编程领域,多线程是一项重要的技术,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在这个“java写的简单聊天程序”中,我们主要关注的是如何使用Java来实现一个基本的多线程聊天应用。下面将...

Global site tag (gtag.js) - Google Analytics