1.7.7停止线程(stop停止造成数据不同步)

来源:互联网 发布:输电网络 编辑:程序博客网 时间:2024/05/29 17:36

package demo;/** * Created by sunyifeng on 17/10/10. */public class SynObject {    private String username = "a";    private String password = "b";    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    synchronized public void printString(String username, String password) {        try {            this.username = username;            Thread.sleep(100000);            this.password = password;        } catch (InterruptedException e) {            e.printStackTrace();        }    }}
package demo;/** * Created by sunyifeng on 17/10/10. */public class MyThread extends Thread {    private SynObject synObject;    public MyThread(SynObject synObject) {        super();        this.synObject = synObject;    }    @Override    public void run() {        synObject.printString("c", "cc");    }}
package demo;/** * Created by sunyifeng on 17/10/10. */public class Run {    public static void main(String[] args) {        try {            SynObject synObject = new SynObject();            MyThread myThread = new MyThread(synObject);            myThread.start();            Thread.sleep(500);            myThread.stop();            System.out.println(synObject.getUsername() + "," + synObject.getPassword());        } catch (InterruptedException e) {            e.printStackTrace();        }    }}
运行结果:c,b

程序分析:stop造成数据不同步。


原创粉丝点击