多线程runnable 和 synchronized
2012-07-07 21:11
288 查看
只要是new一个共享资源就行
runnable (new一个ticket,因为多个线程可以使用一个目标对象)
synchronized (new一个ticketP,用synchronized对它互斥访问)
runnable (new一个ticket,因为多个线程可以使用一个目标对象)
package ticketThread; class ticketP { int ticket=100; void sale() { this.ticket--; } } class ticket extends Thread { private ticketP tk; public ticket(ticketP tk) { this.tk=tk; } public void run() { synchronized(this.tk) { while(tk.ticket>0) { System.out.println("sale : " + Thread.currentThread().getName() + " " + tk.ticket); tk.sale(); } } } public static void main(String[] args) { ticketP tk1=new ticketP(); ticket t1=new ticket(tk1); ticket t2=new ticket(tk1); ticket t3=new ticket(tk1); ticket t4=new ticket(tk1); t1.start(); t2.start(); t3.start(); t4.start(); } }
synchronized (new一个ticketP,用synchronized对它互斥访问)
class ticket implements Runnable { } private int tk=100; public void run() { while(tk>0) { System.out.println("sale : " + Thread.currentThread().getName() + " " +tk--); } } public static void main(String[] args) { ticket tk1=new ticket(); Thread t1=new Thread(tk1); Thread t2=new Thread(tk1); Thread t3=new Thread(tk1); Thread t4=new Thread(tk1); t1.start(); t2.start(); t3.start(); t4.start(); } }
相关文章推荐
- Java多线程之Synchronized应用在static和非static方法上的区别
- java多线程学习-同步(synchronized)
- java多线程中使用synchronized说明
- java多线程系列四:synchronized
- 初学Java多线程:使用Runnable接口创建线程
- Java多线程中Synchronized和Lock的区别
- java 多线程 3 synchronized 同步
- 多线程_实现Runnable接口的方式卖电影票案例
- java多线程之引入Runnable
- JAVA 实现Runnable接口实现多线程
- 使用synchronized关键字解决共享数据同步问题:多线程门票销售
- 实现Runnable接口实现多线程
- Java多线程系列--【基础篇04】-synchronized关键字
- Java 多线程程序设计要点(synchronized)
- (转)初学Java多线程:使用Synchronized关键字同步类方法
- [原]Java多线程编程学习笔记之五:Runnable和Thread实现多线程的区别(含代码)
- java多线程-多线程同步代码块-银行存款实例-锁synchronized
- redis 并发处理,多线程以及synchronized锁的应用
- java多线程实现卖票程序(synchronized)
- 单例模式中的多线程分析synchronized