Runnable可以实现资源共享但Thread不能实现资源共享?不,Thread能!
2015-04-28 20:47
288 查看
很多人说Thread类不能共享资源,其实并不是不能,只是不适合,不信看这个买票程序
class MyThread extends Thread{
Ticket ticket; //注意,此ticket是一个类,不是int
public MyThread(Ticket ticket){
this.ticket=ticket;
}
public void run(){
for(int i=1;i<=100;i++){
synchronized(ticket){
if(ticket.num>0)
System.out.println("还剩"+(--ticket.num)+"张票");
}
}
}
}
class Ticket{
int num=100;
}
public class Test{
public static void main(String[] args){
Ticket ticket=new Ticket();
MyThread mt1=new MyThread(ticket);
MyThread mt2=new MyThread(ticket);
mt1.start();
mt2.start();
}
}
我认为之所以不适合只是因为麻烦而已,并没有很大影响
class MyThread extends Thread{
Ticket ticket; //注意,此ticket是一个类,不是int
public MyThread(Ticket ticket){
this.ticket=ticket;
}
public void run(){
for(int i=1;i<=100;i++){
synchronized(ticket){
if(ticket.num>0)
System.out.println("还剩"+(--ticket.num)+"张票");
}
}
}
}
class Ticket{
int num=100;
}
public class Test{
public static void main(String[] args){
Ticket ticket=new Ticket();
MyThread mt1=new MyThread(ticket);
MyThread mt2=new MyThread(ticket);
mt1.start();
mt2.start();
}
}
我认为之所以不适合只是因为麻烦而已,并没有很大影响
相关文章推荐
- Runnable可以实现资源共享但Thread不能实现资源共享的原因
- Runnable可以实现资源共享但Thread不能实现资源共享的原因
- 如果一个类通过继承Thread来实现多线程的话,则不适合多个线程共享资源,而通过实现Runnable就可以做到这一点
- 如果用Runnable就可以实现资源共享[Java多线程]
- Java学习笔记之实现Runnable接口可以资源共享(卖票系统)
- 在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable,可以实现资源共享
- 实现Runnable,轻松实现多线程间的资源共享
- Java通过继承Thread类实现多线程 ,处理同一个共享资源
- 使用Runnable接口实现资源共享的一些心得
- 多线程Thread类和Runnable接口资源共享问题分析
- 使用Runnable实现资源共享
- 使用Runnable接口实现资源共享的一些心得
- Java 多线程之 Runnable VS Thread 及其资源共享问题
- java多线程------实现Runnable接口创建多进程,实现资源共享
- Thread 和 Runnable创建新线程的区别,Runnable可以共享线程类的实例属性
- 用Thread和Runable同样实现资源共享
- 继承Thread类与实现Runnable接口创建线程对于类实例变量共享的区别
- 实现Runnable接口适合资源的共享
- 实现Runnable接口的多线程可以实现属性共享的原因
- java实现Runnable接口适合资源的共享