StringBuffer,StringBuilder,ArrayList,Vector线程安全验证程序

来源:互联网 发布:java切面编程 编辑:程序博客网 时间:2024/05/18 16:37

直接上代码:

1.StringBuffer,StringBuilder的线程安全验证程序:

package test;public class Test {    public static void main(String[] args) {        StringBuffer sbf = new StringBuffer();        StringBuilder sb = new StringBuilder();        //10个线程        for (int i = 0; i < 10; i++) {//            new Thread(new TestThread(new StringBuffer(), new StringBuilder())).start();            new Thread(new TestThread(sbf, sb)).start();        }    }}class TestThread implements Runnable {    StringBuffer sbf;    StringBuilder sb;     TestThread(StringBuffer sbf, StringBuilder sb) {        this.sb = sb;        this.sbf = sbf;    }     @Override    public void run() {        for (int i = 0; i < 100; i++) {            try {                Thread.sleep(10);            } catch (InterruptedException e) {                e.printStackTrace();            }            sb.append("1");            sbf.append("1");            System.out.println(sb.length() + "/" + sbf.length());        }    }}

2.ArrayList,Vector线程安全验证程序:

package test;import java.util.ArrayList;import java.util.List;import java.util.Vector;public class TestLists { public static void main(String[] args) {        List<Integer> arrayList = new ArrayList<>();        List<Integer> cVector = new Vector<>();        //10个线程        for (int i = 0; i < 10; i++) {//            new Thread(new TestThread(new StringBuffer(), new StringBuilder())).start();            new Thread(new TestThreadList(arrayList, cVector)).start();        }    }}class TestThreadList implements Runnable {    List<Integer> arrayList;    List<Integer> cVector;     TestThreadList( List<Integer> arrayList,  List<Integer> cVector) {        this.arrayList = arrayList;        this.cVector = cVector;    }     @Override    public void run() {        for (int i = 0; i < 100; i++) {            try {                Thread.sleep(10);            } catch (InterruptedException e) {                e.printStackTrace();            }            arrayList.add(1);            cVector.add(1);            System.out.println(arrayList.size() + "/" + cVector.size());        }    }}


第一个代码是copy别人的,第二个参照一下就简单了,忘了那个文章的链接了,原作者不好意思了!

0 0
原创粉丝点击