【Java基础】多线程中同步的两种解决方案
2013-01-16 00:00
483 查看
1、同步代码
import java.util.logging.Level; import java.util.logging.Logger; public class MyThread implements Runnable {//实现Ruannable借口 private int tickets = 10; //一共10张票 @Override public void run() { //实现run()方法 for (int i = 0; i < 50; i++) { synchronized (this) { if (tickets > 0) { try { Thread.sleep(200); } catch (InterruptedException ex) { Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex); } System.out.println(Thread.currentThread().getName() + ":ticket" + tickets--); } } } } }
2同步方法
import java.util.logging.Level; import java.util.logging.Logger; public class TicketThread extends Thread { private int tickets = 10; //一共10张票 @Override public void run() { //实现run()方法 for (int i = 0; i < 50; i++) { this.sale(); } } public synchronized void sale() { if (tickets > 0) { try { Thread.sleep(200); } catch (InterruptedException ex) { Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex); } System.out.println(Thread.currentThread().getName() + ":ticket" + tickets--); } } }
相关文章推荐
- java基础——多线程(线程的同步互斥与通信)
- java语言基础(91)——多线程(同步方法解决线程安全问题)
- JAVA基础知识之java多线程时数据同步问题
- java中多线程安全问题产生&解决方案——同步方法
- JAVA多线程之间实现同步+多线程并发同步解决方案
- (新手)java多线程基础知识——调度与同步
- Java多线程13:读写锁和两种同步方式的对比
- Java基础多线程间通讯同步操作示例一(未优化):
- 重学JAVA基础(六):多线程的同步
- Java基础-23总结多线程,线程实现Runnable接口,线程名字获取和设置,线程控制,线程安全,同步线程
- Java基础-多线程的同步机制
- Java多线程13:读写锁和两种同步方式的对比
- Java多线程基础之对象锁的同步与异步
- Java基础-23总结多线程,线程实现Runnable接口,线程名字获取和设置,线程控制,线程安全,同步线程
- JAVA进阶学习-多线程基础详解(二)-同步
- Java_基础—多线程(同步代码块和同步方法)
- Java基础-多线程-③线程同步之synchronized
- Java基础知识笔记(五:多线程的同步问题)
- Java基础-多线程-③线程同步之synchronized
- 多线程基础之一:进程间同步问题的来源和解决方案