package com.mixian.thread;
public class ThreadSafe extends Thread{
private static int num = 1;
private String username;
public ThreadSafe(String username){
this.username = username;
}
@Override
public void run() {
synchronized(String.valueOf(num)){
if(num>0){
System.out.println("正在检票。。。"+this.getUsername());
System.out.println("正在出票。。。"+this.getUsername());
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("售票完成");
num--;
System.out.println("当前票量+"+num);
}else{
System.out.println("nothing");
}
}
}
public static void main(String[] args) {
try {
new ThreadSafe("mxiian").start();
Thread.sleep(100);
new ThreadSafe("longquan").start();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static int getNum() {
return num;
}
public static void setNum(int num) {
ThreadSafe.num = num;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
要把共享变量放入synchronized结构体就可以了,避免多线程同时访问共享对象出错!
还有一种方法叫做同步方法:用synchronized关键字形容方法,程序执行的时候必须等待该同步方法执行完毕才嫩被执行,当某个方法调用同步方法的时候。
分享到:
相关推荐
总的来说,理解和掌握Java线程的创建、状态管理、同步机制和线程安全是进行多线程编程的基础,这对于开发高效、稳定的并发程序至关重要。在实际编程中,应充分利用Java提供的工具和机制,避免潜在的并发问题,提升...
Java线程(二):线程同步synchronized和volatile 详细讲解Java 同步的原理技术资料
Java线程安全是多线程编程中的一个关键概念,它涉及到在并发环境下如何正确地管理共享资源,确保程序的正确性和一致性。以下是对Java线程安全的深入总结: ### 一、线程安全的定义 线程安全是指当多个线程访问同一...
Java线程安全是多线程编程中的一个关键概念,它涉及到多个线程访问共享资源时可能出现的问题。在Java中,线程安全问题通常与并发、内存模型和可见性有关。Java内存模型(JMM)定义了如何在多线程环境下共享数据的...
在Java编程语言中,多线程同步是一种控制多个线程并发执行的重要机制,它确保了共享资源的安全访问,防止数据不一致性和竞态条件的发生。本文将深入探讨Java中的多线程同步方法,并通过实例来阐述其工作原理。 首先...
它可能包含了创建和管理线程、与数据库交互的代码,以及各种同步和异常处理逻辑。为了进一步学习和实践,你可以查看并分析这个代码,了解具体实现细节。 总之,使用Java线程实现数据库主从同步更新是一种常见且实用...
总之,Java的同步方法是一种有效的解决线程安全问题的手段,它可以确保共享资源在多线程环境中的正确访问和更新。但是,过度使用同步可能会导致性能下降,因此在设计多线程程序时,需要根据具体需求和性能考虑来选择...
这些集合确保了在多个线程访问时的数据一致性、完整性和安全性,避免了竞态条件、死锁和其他并发问题。Java提供了一系列的线程安全集合类,它们是专门为多线程环境设计的。 首先,我们要了解什么是线程安全。线程...
Java线程同步调用是多线程编程中的基石,它通过同步方法和同步代码块两种方式,有效地控制了线程之间的交互,防止了多线程环境下常见的并发问题。无论是对于初学者还是有经验的开发者,掌握和熟练应用这些同步机制都...
线程同步是 Java 编程中的一种机制,用于控制多个线程之间的资源访问顺序,以避免线程之间的冲突和数据不一致。线程同步的目的就是避免线程“同步”执行,即让多个线程之间排队操作共享资源。 关于线程同步,需要...
在Java编程中,线程同步和互斥是多线程编程中的重要概念,它们用于解决多个线程同时访问共享资源时可能出现的问题。本项目通过一个生产者消费者问题的实例,展示了如何在Java中实现线程间的同步与互斥。 生产者消费...
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...
Java线程同步与通信是多线程编程中的关键概念,用于解决并发访问共享资源时可能出现的数据不一致性和竞态条件问题。以下将详细介绍这两个主题,以及如何通过代码示例进行演示。 1. **线程同步**: 线程同步是确保...
Java多线程同步是编程中一个非常重要的概念,特别是在并发编程和高并发系统设计中起到关键作用。在Java中,为了保证线程安全,避免数据竞争和不一致的状态,我们通常会使用同步机制来控制对共享资源的访问。本文将...
总结来说,Java中的同步代码块是一种有效的解决线程安全问题的手段,通过限制对共享资源的并发访问,可以保证数据的一致性和线程的安全性。然而,过度使用同步可能会降低程序的性能,因此需要合理设计同步范围,确保...
总结一下,Java线程同步的关键点: 1. **线程同步是为了解决共享资源的并发访问问题,防止数据不一致和冲突。** 2. **同步意味着线程排队,依次访问共享资源,而不是同时访问。** 3. **只有共享变量(可变状态)才...
Java为解决线程同步问题提供了丰富的工具和方法: 1. **wait方法**:此方法允许当前线程暂停执行并释放锁,直到被另一个线程唤醒。调用wait方法时,必须在`synchronized`代码块内进行,且通常在while循环中调用以...
java线程同步java线程同步java线程同步
线程同步机制是解决线程安全问题的一种方法。常见的线程同步机制有:同步块(Synchronized Block)、同步方法(Synchronized Method)、锁(Lock)、Atomic 变量等。 四、线程安全问题解决方案 (1)方式一:实现...