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别人的,第二个参照一下就简单了,忘了那个文章的链接了,原作者不好意思了!
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别人的,第二个参照一下就简单了,忘了那个文章的链接了,原作者不好意思了!
相关文章推荐
- Java中线程安全与线程非安全ArrayList,Vector 和 HashMap,Hashtable 和StringBuffer,StringBuilder
- 代码验证java的StringBuffer是线程安全而StringBuilder是线程不安全的
- ArrayList和Vector的区别?HashMap和HashTable的区别?StringBuilder、StringBuffer和String的区别?
- StringBuffer、StringBuilder、ArrayList、Vector、HashMap、HashTable是如何扩容的
- 字符拼接StringBuilder速度快,但StringBuilder是线程不安全的。(StringBuffer是线程安全的,给buffer加锁)
- 验证ArrayList线程不安全,redisson提供的分布式集合线程安全
- Vector与ArrayList,Stringbuffer和StringBuilder和String
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- 怎样线程安全地遍历List:Vector、CopyOnWriteArrayList
- 根据StringBuffer、StringBuilder想起的的线程安全与线程不安全
- ArrayList和Vector线程安全理解
- 怎么理解StringBuffer线程安全,StringBuilder线程不安全
- 验证StringBuilder线程不安全
- Vector, ArrayList, HashMap 和Hashtable 哪个线程安全?为什么?
- StringBuffer vs StringBuilder、HashTable vs HashMap、Vector vs ArrayList
- ArrayList和Vector线程安全理解
- ArrayList非线程安全、Vector线程安全原理
- 怎么理解Stringbuffer是线程安全的stringbuilder是线程不安全的
- 线程安全地遍历List:Vector 、CopyOnWriteArrayList
- StringBuffer线程安全StringBuilder线程不安全