JAVA线程安全的案例
Posted 键盘AQ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA线程安全的案例相关的知识,希望对你有一定的参考价值。
1.什么是线程安全?
当多个线程共享同一个全局变量,做写的操作的时候,可能会受到其他线程的干扰,导致数据有问题,这种现象叫做线程安全问题。
2.案例
模拟火车票卖票程序,火车车厢一般都有118个座,这里新建一个火车票类,一个方法卖票。再建一个测试类
package lock;
?
public class Ticket {
?
public int count = 118;
?
public int sell() {
System.out.println(Thread.currentThread().getName() + ":还剩下" + count + "张票");
return --count;
}
}
package lock;
?
public class SellerSystem {
?
public static void main(String[] args) {
Ticket ticket = new Ticket();
new Thread(new Runnable() {
3.为了保证线程安全问题
public synchronized int sell() {
System.out.println(Thread.currentThread().getName() + ":还剩下" + count + "张票");
return --count;
}
第二种方法,使用锁
public int sell() {
lock.lock();
System.out.println(Thread.currentThread().getName() + ":还剩下" + count + "张票");
count--;
lock.unlock();
return count;
}
以上是关于JAVA线程安全的案例的主要内容,如果未能解决你的问题,请参考以下文章