欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

证明创建runnable实例和普通类时间一样长

发布时间:2023/11/29 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 证明创建runnable实例和普通类时间一样长 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

//证明创建runnable实例和普通类时间一样长

public class Test002 {

private ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<String>();
// private ArrayList<String> queue = new ArrayList<String>();
// private CyclicBarrier barrier = new CyclicBarrier(10000000);
private CountDownLatch latch = new CountDownLatch(100000);
ExecutorService es = Executors.newFixedThreadPool(4);

public static void main(String[] args) {
Test002 test001 = new Test002();
long timeStart = System.currentTimeMillis();
test001.begin();
System.out.println("##线程类实例化10000次时间:"+(System.currentTimeMillis()-timeStart));

timeStart = System.currentTimeMillis();
test001.begin2();
System.out.println("##普通类实例化10000次时间:"+(System.currentTimeMillis()-timeStart));

}

public void begin(){
for (int i = 0; i < 10000; i++) {
Runnable001 runnable001 = this.new Runnable001(i);
}
}
public void begin2(){
for (int j = 0; j < 10000; j++) {
Runnable002 Runnable002 = this.new Runnable002(j);
// new Thread(); // 时间主要花在创建线程上,使用runnable接口不占用时间
}
}

private class Runnable001 implements Runnable{
private int value;
public Runnable001(int value) {
this.value = value;
}

public void run() {

try {
// barrier.await();
} catch (Exception e) {
e.printStackTrace();
}
queue.offer(value + "");
latch.countDown();//latch计数减一
}

}
private class Runnable002 {
private int value;
public Runnable002(int value) {
this.value = value;
}

public void run() {

try {
// barrier.await();
} catch (Exception e) {
e.printStackTrace();
}
queue.offer(value + "");
latch.countDown();//latch计数减一
}

}
}

转载于:https://www.cnblogs.com/fengdaren/p/9765922.html

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的证明创建runnable实例和普通类时间一样长的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。