java 第58节 线程同步问题的由来

Posted 岑亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 第58节 线程同步问题的由来相关的知识,希望对你有一定的参考价值。

2016-07-01

 

package com.java1995;
/**
 * 打印机类
 * @author Administrator
 *
 */
public class Print {
    
    /**
     * 
     * @param name 学生姓名
     * @param eScore 英语成绩
     * @param mScore 数学成绩
     * @param yScore 语文成绩
     */
    public void printScore(String name,int eScore,int mScore,int yScore){
        System.out.println(name+"的英语成绩:"+eScore);
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(name+"的数学成绩:"+mScore);
        System.out.println(name+"的语文成绩:"+yScore);

    }

}

 

package com.java1995;
/**
 * 老师类
 * @author Administrator
 *
 */
public class Teacher implements Runnable{
    //封装
    private Print p;
    private String name;
    private int eScore,mScore,yScore;
    
    public Teacher(Print p,String name,int eScore,int mScore,int yScore){
        this.p=p;
        this.name=name;
        this.eScore=eScore;
        this.mScore=mScore;
        this.yScore=yScore;
    }

    //封装的实现
    public Print getP() {
        return p;
    }

    public void setP(Print p) {
        this.p = p;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int geteScore() {
        return eScore;
    }

    public void seteScore(int eScore) {
        this.eScore = eScore;
    }

    public int getmScore() {
        return mScore;
    }

    public void setmScore(int mScore) {
        this.mScore = mScore;
    }

    public int getyScore() {
        return yScore;
    }

    public void setyScore(int yScore) {
        this.yScore = yScore;
    }
    
    //重写run()方法
    @Override
    public void run() {
        // TODO Auto-generated method stub
        p.printScore(name, eScore, mScore, yScore);
    }
    
    

}

 

 

package com.java1995;

public class Test {
    
    public static void main(String[] args) {
        
        Print p=new Print();
        Teacher t1=new Teacher(p,"博尔特",10,11,12);
        Teacher t2=new Teacher(p,"加特林",23,56,1);
        Teacher t3=new Teacher(p,"苏炳添",34,55,90);
        
        Thread th1=new Thread(t1);
        Thread th2=new Thread(t2);
        Thread th3=new Thread(t3);
        th1.start();
        th2.start();
        th3.start();

    }

}

 

以上是关于java 第58节 线程同步问题的由来的主要内容,如果未能解决你的问题,请参考以下文章

java 第59节 同步问题Java的解决方案

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_3_线程安全问题产生的原理

Java学习--线程

Java面试宝典线程安全问题|线程死锁的出现|线程安全的集合类

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_8_等待唤醒机制代码实现_包子类&包子铺类

java中的synchronized(同步代码块和同步方法的区别)