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线程同步
Java线程(二):线程同步synchronized和volatile 详细讲解Java 同步的原理技术资料
java 多线程同步方法的实例 java 多线程同步方法的实例 java 多线程同步方法的实例
摘要: 活动锁 与 死锁 不同,它是在线程实际工作的时候发生的,但这时还没有完成工作。这通常是在两个线程交叉工作的时候发生,所以第一个线程做的工作被另一个线程取消。一个简单的示例就是:每个线程已经拥有了一...
Java线程:线程的同步-同步方法 Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 ...
Java多线程--同步机制解决线程安全问题方式二:同步方法
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...
Java线程:线程的同步-同步方法 Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的...
JAVA代码采用线程来实现数据库的主从同步更新
java线程同步实例,哲学家思考的代码实现,应该是一个比较好的例子
lettuce - 高级Java Redis客户端,用于线程安全同步,异步和reactive用法。 支持群集,Sentinel,管道和编解码器。
Java线程:概念与原理 2 ...五、 关于同步和锁定的一些问题 41 Java线程:并发协作-线程的交互 47 Java线程:并发协作-生产者消费者模型 52 Java线程:并发协作-死锁 55 Java线程:线程之间的数据传递 58
java多线程同步互斥访问实例,对于初学者或是温故而知新的同道中人都是一个很好的学习资料
Java多线程同步论文.doc
《JAVA多线程设计模式》PDF 下载 《Java线程 高清晰中文第二版》中文第二版(PDF) 前言 第一章 线程简介 Java术语 线程概述 为什么要使用线程? ...第二章 Java线程API ...第三章 同步技术 ...线程组、线程和安全 总结
Java线程:线程的同步-同步方法 Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 ...
Java多线程--同步机制解决线程安全问题方式一:同步代码块
本代码是用JAVA实现的生产者与消费者的问题,线程间的同步与互斥功能
NoHttp核心架构之多线程通信、线程安全、线程同步;synchronized锁,Lock锁;具体讲解请移步博客:http://blog.csdn.net/yanzhenjie1003/article/details/50992468