多个对象无锁

来源:互联网 发布:淘宝多店铺管理软件 编辑:程序博客网 时间:2024/05/22 16:05

线程安全

public class Text {    public static void main(String[] args) throws InterruptedException {        // TODO Auto-generated method stub        HasSelfPrivateNum num = new HasSelfPrivateNum();        HasSelfPrivateNum num1 = new HasSelfPrivateNum();        ThreadA a = new ThreadA(num);        ThreadB b = new ThreadB(num1);        a.start();        b.start();    }}public class HasSelfPrivateNum {    int num;    public void addI(String username) {        if (username.equals("a")) {            num = 100;            System.out.println("a set over");            try {                Thread.sleep(2000);            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        } else {            try {                Thread.sleep(1000);            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            num = 200;            System.out.println("b set over");        }        System.out.println(username + "num = " + num);    }}public class ThreadB extends Thread{    private HasSelfPrivateNum num;    public ThreadB(HasSelfPrivateNum num) {        // TODO Auto-generated constructor stub        this.num = num;    }    public void run() {        // TODO Auto-generated method stub        num.addI("b");    }}public class ThreadA extends Thread {    public HasSelfPrivateNum num;    public ThreadA(HasSelfPrivateNum num) {        // TODO Auto-generated constructor stub        this.num = num;    }    public void run() {        // TODO Auto-generated method stub        num.addI("a");    }}只有共享的资源才有线程不安全,共享资源的读写访问才需要同步化
原创粉丝点击