您的位置:首页 > 产品设计 > UI/UE

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

2016-10-21 18:59 471 查看
直接上代码:

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别人的,第二个参照一下就简单了,忘了那个文章的链接了,原作者不好意思了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javase 多线程
相关文章推荐