菜鸟级h5
2017-08-15 13:17Java的线程上锁造成的问题
public class Piao implements Runnable{
Integer p=5;
@Override
public synchronized void run() {
synchronized(p) {
if(p>0) {
System.out.println("卖出了第"+p+"张票");
p--;
}
else {
System.out.println("没了");
}
}
}
public static void main(String[] args) {
Piao c=new Piao ();
new Thread(c).start();
new Thread(c).start();
new Thread(c).start();
new Thread(c).start();
new Thread(c).start();
}
}
就是这种卖票的问题,如果锁方法;就会让一个线程卖完全部票,如果锁票数,就会出现两个线程卖同一张票的问题,请问怎么处理?
- 点赞
- 回答
- 收藏
- 复制链接分享
4条回答
为你推荐
- ThreadPoolTaskExecutor 异步任务 对于长时间大数据的执行,执行一半线程终止。
- java
- sqlite
- intellij-idea
- spring
- 3个回答
- 关于Java多线程的join()方法的问题
- java
- 开发语言
- 3个回答
- 学习Java多线程和集合,关于集合的同步问题,请教版上高手!
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 0个回答
- java多线程并发访问sqlite数据库如何同步和加锁
- java
- sqlite
- 多线程
- 并发
- 6个回答
- 关于Java多线程的问题,求大神解决
- 多线程
- 2个回答
换一换