读书人

多线程2【共享数据】

发布时间: 2012-12-18 12:43:41 作者: rapoo

多线程二【共享数据】

Thread.currentThread();//获得当前正在执行这行代码的线程的引用Thread.currentThread().getName(); //获得线程名字


package text01;/** * 线程共享数据   */class MyThreadT implements Runnable{// 继承Thread类,作为线程的实现类private int ticket = 5 ;// 表示一共有5张票public void run(){// 覆写run()方法,作为线程 的操作主体for(int i=0;i<100;i++){if(this.ticket>0){System.out.println("卖票:ticket = " + ticket--) ;}}}};public class RunnableDemo02{public static void main(String args[]){MyThreadT mt = new MyThreadT() ; // 实例化对象new Thread(mt).run() ;// 调用线程主体new Thread(mt).run() ;// 调用线程主体}};运行结果:卖票:ticket = 5卖票:ticket = 4卖票:ticket = 3卖票:ticket = 2卖票:ticket = 1package text01;/** * 线程不能共享数据    */class MyThread1 extends Thread{// 继承Thread类,作为线程的实现类private int ticket = 5 ;// 表示一共有5张票public void run(){// 覆写run()方法,作为线程 的操作主体for(int i=0;i<100;i++){if(this.ticket>0){System.out.println("卖票:ticket = " + ticket--) ;}}}};public class ThreadDemo04{public static void main(String args[]){MyThread1 mt1 = new MyThread1() ; // 实例化对象MyThread1 mt2 = new MyThread1() ; // 实例化对象 mt1.run() ;// 调用线程主体mt2.run() ;// 调用线程主体 }};运行结果:卖票:ticket = 5卖票:ticket = 4卖票:ticket = 3卖票:ticket = 2卖票:ticket = 1卖票:ticket = 5卖票:ticket = 4卖票:ticket = 3卖票:ticket = 2卖票:ticket = 1

读书人网 >编程

热点推荐