多线程-生产者消费者问题代码1

来源:互联网 发布:临沂seo 编辑:程序博客网 时间:2024/05/12 22:37
package cn.itcast_03;public class GetThread implements Runnable {private Student s;public GetThread(Student s) {this.s = s;}@Overridepublic void run() {// Student s = new Student();System.out.println(s.name + "---" + s.age);}}
package cn.itcast_03;public class SetThread implements Runnable {private Student s;public SetThread(Student s) {this.s = s;}@Overridepublic void run() {// Student s = new Student();s.name = "林青霞";s.age = 27;}}
package cn.itcast_03;public class Student {String name;int age;}
package cn.itcast_03;/* * 分析: * 资源类:Student * 设置学生数据: SetThread(生产者) * 获取学生数据:GetThread(消费者) * 测试类:StudentDemo *  * 问题1:按照思路写代码,发现数据每次都是:null---0 * 原因: 我们在每个线程中都创建了新的资源,而我们要求的时候设置和获取线程的资源应该是同一个 * 如何实现呢? * 在外界把这个数据创建出来,通过构造方法传递给其他的类。 *  */public class StudentDemo {public static void main(String[] args) {//创建资源Student s = new Student();//设置和获取的类SetThread st = new SetThread(s);GetThread gt = new GetThread(s);//线程类Thread t1 = new Thread(st);Thread t2 = new Thread(gt);//启动线程t1.start();t2.start();}}

原创粉丝点击