public class Number implements Runnable{ private Integer count=1; @Override public void run() { while(true){ synchronized (count) { if(count>30){ break; } try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(count+"-----------"); count++; System.out.println(count); } } } public static void main(String[] args) { Number n = new Number(); Thread t1= new Thread(n,"Number1"); Thread t2= new Thread(n,"Number2"); Thread t3= new Thread(n,"Number3"); t1.start(); t2.start(); t3.start(); } } 这段线程可能会打印如下: 1----------- 2 2----------- 3 3----------- 4 4----------- 4----------- 4----------- 6 5 7 7----------- 8 8----------- 9 9----------- 10 10----------- 10----------- 11 12 12----------- 13 13----------- 14 13----------- 15 15----------- 16 16----------- 17 17----------- 18 18----------- 19 19----------- 20 20----------- 21 21----------- 22 22----------- 23 23----------- 24 24----------- 25 25----------- 26 26----------- 27 27----------- 28 28----------- 29 29----------- 30 30----------- 31 31----------- 32 31----------- 33
感觉好像没有同步,有几个打印的是一样,比如4---------
如果把synchronized (count) 改为synchronized (this) 就是可以的
这个不清楚为什么,有能解释的吗?
相关推荐
在探究Java多线程同步问题时,需要关注的关键知识点包括synchronized关键字的使用、JDK 5引入的java.util.concurrent.locks包下的锁机制、以及JDK 1.2中ThreadLocal类的使用。此外,了解JVM(Java虚拟机)在处理多...
Java多线程同步问题分析主要关注的是在并发环境中如何有效地管理共享资源,避免出现数据竞争和不一致性。在Java编程中,多线程是提升程序性能的重要手段,尤其是在服务器端应用和服务中。然而,当多个线程同时访问并...
因此,在使用Java多线程同步机制时,需要小心避免这些问题的出现。 Java多线程同步机制在实际应用中的应用 Java多线程同步机制在实际应用中有很多应用,例如: * 在线银行系统中,使用Java多线程同步机制来确保...
Java 多线程同步问题完整代码 本文主要介绍了Java 多线程同步问题完整代码,以银行取钱为例,通过代码实例来演示多线程同步问题的解决方案。多线程同步是指在同一程序中有多个顺序流在执行,并且这些顺序流之间需要...
本文通过对Java多线程同步机制的研究和分析,旨在解决多线程中的同步问题和共享资源的访问保护问题。 一、Java多线程同步机制的重要性 Java多线程同步机制是Java编程语言中的一种机制,它允许多个线程同时执行,...
java多线程同步互斥访问实例,对于初学者或是温故而知新的同道中人都是一个很好的学习资料
本文主要研究了基于Java多线程同步的安全性问题,讨论了Java多线程同步机制的实现方法和安全性问题的解决方法。文章首先介绍了Java多线程同步的必要性和重要性,然后讨论了Java多线程同步机制的实现方法,包括使用...
Java多线程同步是Java编程中关键的并发概念,它涉及到如何在多个线程访问共享资源时保持数据的一致性和完整性。`java.util.concurrent`包是Java提供的一个强大的并发工具库,它为开发者提供了多种线程安全的工具,...
Java多线程同步是Java编程中至关重要的一部分,特别是在并发编程领域。Java提供了多种同步机制来确保线程安全,防止数据不一致性和竞态条件。在Java中,synchronized关键字是实现线程同步的关键,它提供了互斥访问,...
在实际应用中,Java多线程同步机制可以用于解决多种问题,例如售票系统、银行系统等。通过使用同步机制,可以避免多线程之间的冲突和错误,提高系统的安全性和可靠性。 多线程编程的优点是可以提高系统的性能和效率...
根据给定文件的信息,本篇文档是关于Java多线程同步技术在简易模拟售票系统...通过一个简易的售票系统案例,本文档展示了如何将理论知识应用于实际问题的解决中,对于学习和理解Java多线程同步技术具有重要的参考价值。
Java多线程同步是编程中一个非常重要的概念,特别是在并发编程和高并发系统设计中起到关键作用。在Java中,为了保证线程安全,避免数据竞争和不一致的状态,我们通常会使用同步机制来控制对共享资源的访问。本文将...
Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...
Java多线程同步是编程中一个非常重要的概念,特别是在并发编程中,用于解决多个线程访问共享资源时可能引发的数据不一致问题。本实例通过一个简单的火车票售票系统来演示同步机制的应用。 在这个实例中,我们创建了...
现在,我们来看一个具体的实例——银行账户转账操作,这是一个典型的多线程同步问题。假设我们有如下类: ```java public class Account { private double balance; public synchronized void deposit(double ...
在Java编程中,线程同步和互斥是多线程编程中的重要概念,它们用于解决多个线程同时访问共享资源时可能出现的问题。本项目通过一个生产者消费者问题的实例,展示了如何在Java中实现线程间的同步与互斥。 生产者消费...
本案例将深入探讨Java多线程中的关键知识点,包括线程同步、线程通信和线程阻塞。 线程同步是为了防止多个线程同时访问共享资源,导致数据不一致。Java提供了多种同步机制,如synchronized关键字、Lock接口...
Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...
### Java多线程同步机制在售票系统的实现 #### 一、引言 随着计算机硬件的发展,多核处理器已经成为主流配置,这为多线程编程提供了更广阔的应用场景。多线程能够充分利用多核处理器的优势,提高程序的并发性和...